小编use*_*123的帖子

C#错误:"填充:SelectCommand.Connection属性尚未初始化."

我正在使用此视频尝试填充a的结果DataGridView,并收到上述错误.下面的代码与此错误有关 - 我将值传递给存储过程,然后最终SELECT返回表中的值DataGridView.

        SqlConnection con = new SqlConnection();
        con.ConnectionString = "integrated security=SSPI;data source=SERV;" + "persist security info=False;initial catalog=DB";

        con.Open();
        SqlCommand select = new SqlCommand("SELECT * FROM Table");
        SqlCommand enter = new SqlCommand("sp_Proc", con);

        // Stored Procedure
        enter.CommandType = CommandType.StoredProcedure;
        enter.Parameters.Add(new SqlParameter("@vvalue", SqlDbType.VarChar)).Value = Convert.ToString(txt1.Text);
        enter.Parameters.Add(new SqlParameter("@dvalue", SqlDbType.Decimal)).Value = Convert.ToDecimal(txt2.Text);
        enter.ExecuteNonQuery();

        // DataGrid returns the SELECT

        SqlDataAdapter sadapt = new SqlDataAdapter(select);
        sadapt.SelectCommand = select;
        DataTable dtab = new DataTable();
        sadapt.Fill(dtab); // generates the …
Run Code Online (Sandbox Code Playgroud)

c# sql-server datagridview

7
推荐指数
1
解决办法
4万
查看次数

获取任何一年的第一天和最后一天

我目前正在尝试获取任何一年的第一天和最后一天。我有 1950 年的数据,我想获取数据集中该年的第一天到该数据集中该年的最后一天(请注意,该年的最后一天可能不是 12 月 31 日,与 12 月 31 日相同)那一年)。

最初我认为我可以使用 aCTE并调用DATEPART一年中的某一天选择,但这不会正确分区。我还尝试了CTE自连接,但由于一年中的最后一天或第一天可能不同,这也会产生不准确的结果。

例如,使用下面的代码实际上会生成一些MINs MAX,反之亦然,尽管理论上它应该只获取MAX年份的日期和MIN年份的日期:

;WITH CT AS(
    SELECT Points
        , Date
        , DATEPART(DY,Date) DA
    FROM Table
    WHERE DATEPART(DY,Date) BETWEEN 363 AND 366
        OR DATEPART(DY,Date) BETWEEN 1 AND 3
)
SELECT MIN(c.Date) MinYear
    , MAX(c.Date) MaxYear
FROM CT c
GROUP BY YEAR(c.Date)
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server-2012

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×1

datagridview ×1

sql-server ×1

sql-server-2012 ×1

t-sql ×1