-2

我编写了这段代码来在数据库中插入一行:

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["earchConnectionString"].ConnectionString);
//string insCmd = "Insert into [node] (title, parent_id, oid, display, linkById, customLinks, contentType) values (@title, @parent_id, @oid, @display, @linkById, @customLinks, @contentType)";
string insCmd = "Insert into [node] (title) values (@title)";
SqlCommand insertUser = new SqlCommand(insCmd, con);
insertUser.Parameters.AddWithValue("@title", TextBoxTitle.Text);

try
{
    insertUser.ExecuteNonQuery();
    con.Close();
    Response.Redirect("addNode.aspx");
    Label1.Text = "update success";

}
catch (Exception er)
{
    Label1.Text = er.StackTrace;
}

堆栈跟踪:

at System.Data.SqlClient.SqlConnection.GetOpenConnection(String method)
at System.Data.SqlClient.SqlConnection.ValidateConnectionForExecute(String method, SqlCommand command)
at System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean async)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at Admin_addNode.Button1_Click(Object sender, EventArgs e)
in c:\inetpub\web1\Admin\addNode.aspx.cs:line 52

有谁知道是什么问题?

4

1 回答 1

4

先调用con.Open()再执行ExecuteNonQuery()

con.Open();
insertUser.ExecuteNonQuery();
于 2012-10-19T08:10:31.640 回答