c# - "executenonquery connection property has not been initialized"

标签 c# asp.net sql sql-server sql-update

SqlConnection cn = new SqlConnection(@"DataSource=dbedu.cs.vsb.cz\SQLDB;Persist Security Info=True;User ID=*****;Password=*******");

SqlCommand cmd = new SqlCommand();
string finish = DropDownListFi.SelectedValue;
cn.Open();
String Name = Request.QueryString["Name"];
cmd.CommandText = "UPDATE navaznost_ukolu SET finish=@finish where Name='" + Name + "'";
cmd.Parameters.Add(new SqlParameter("@finish", finish));
cmd.ExecuteNonQuery();
cmd.Clone();

错误信息

Executenonquery connection property has not been initialized.

最佳答案

您当前代码的问题是您没有设置SqlCommand 对象的Connection 属性。试试这个,

SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;

并且您还必须参数化在 name

上设置的值
String Name = Request.QueryString["Name"];
cmd.CommandText = "UPDATE navaznost_ukolu SET finish=@finish where Name=@name";
cmd.Parameters.Add(new SqlParameter("@finish", finish));
cmd.Parameters.Add(new SqlParameter("@name", Name));

完整代码

string finish = DropDownListFi.SelectedValue;
String Name = Request.QueryString["Name"];
string connStr = @"DataSource=dbedu.cs.vsb.cz\SQLDB;
                   Persist Security Info=True;
                   User ID=*****;
                   Password=*******";
string sqlStatement = @"UPDATE navaznost_ukolu 
                        SET    finish = @finish 
                        WHERE  Name = @Name";

using (SqlConnection conn = new SqlConnection(connStr))
{
    using(SqlCommand cmd = new SqlCommand())
    {
        cmd.Connection = conn;
        cmd.CommandText = sqlStatement;
        cmd.CommandType = CommandType.Text;

        cmd.Parameters.Add(new SqlParameter("@finish", finish));
        cmd.Parameters.Add(new SqlParameter("@name", Name));

        try
        {
            conn.Open();
            cmd.ExecuteNonQuery();
        }
        catch(SqlException e)
        {
            // do something with the exception
            // do not hide it
            // e.Message.ToString()
        }
    }
}

正确编码

  • 使用 using 语句进行 propr 对象处理
  • 使用try-catch block 来正确处理对象

关于c# - "executenonquery connection property has not been initialized",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15852958/

相关文章:

MySQL 比较两个表中的列 AND WHERE X = "%%"

mysql - MYSQL中如何对列进行排序

c# - Windows 8 C# GridView e.ClickedItem

javascript - 发布JSON数据时MVC Controller 的string[]参数为null

c# - 图中节点的拓扑排序子集

javascript - eventRender 未被触发 Fullcalendar ASP.net C# webforms

asp.net - Dataview 上的 DataColumn.Expression RowFilter

c# - 将 BLOB 作为 Image C# 保存到磁盘

mysql - 如何删除字符串的格式部分?

c# - 用于创建 DLL : C++ or C# 的编程语言