-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 に答える