Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQL Server错误:ExecuteOnQuery:尚未初始化连接属性_C#_Asp.net_Sql Server 2008_Insertion - Fatal编程技术网

C# SQL Server错误:ExecuteOnQuery:尚未初始化连接属性

C# SQL Server错误:ExecuteOnQuery:尚未初始化连接属性,c#,asp.net,sql-server-2008,insertion,C#,Asp.net,Sql Server 2008,Insertion,我正在尝试使用ASP.Net和C开发一个示例注册页。我正在调用一个存储过程将数据插入数据库。我的数据库是SQLServer2008 这是我的代码: public partial class Sample : System.Web.UI.Page { SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["dbconnection"].ToString()); string str;

我正在尝试使用ASP.Net和C开发一个示例注册页。我正在调用一个存储过程将数据插入数据库。我的数据库是SQLServer2008

这是我的代码:

public partial class Sample : System.Web.UI.Page
{
   SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["dbconnection"].ToString());
   string str;

protected void Page_Load(object sender, EventArgs e)
{
    rbt_Male.Checked = true;
}

protected void btn_Submit_Click(object sender, EventArgs e)
{
    string @Name = txtbx_Name.Text;
    string @Gender_male = rbt_Male.Text;
    string @Gender_Female = rbt_Female.Text;
    string @Email = txtbx_Email.Text;
    DateTime @Dob = Convert.ToDateTime(txt_Dob.Text);
    submitdata();
}

protected void submitdata()
{
    try
    {
        SqlCommand cmd = new SqlCommand();
        cmd.Parameters.Clear();
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.CommandText = "insertdata";

        if (rbt_Male.Checked)
        {
            cmd.Parameters.AddWithValue("@Name", txtbx_Name.Text);
            cmd.Parameters.AddWithValue("@Gender_Male", rbt_Male.Text);
            cmd.Parameters.AddWithValue("@Email", txtbx_Email.Text);
            cmd.Parameters.AddWithValue("@Dob", Convert.ToDateTime(txt_Dob.Text));
        }
        else if (rbt_Female.Checked)
        {
            cmd.Parameters.AddWithValue("@Name", txtbx_Name.Text);
            cmd.Parameters.AddWithValue("@Gender_Female", rbt_Male.Text);
            cmd.Parameters.AddWithValue("@Email", txtbx_Email.Text);
            cmd.Parameters.AddWithValue("@Dob", Convert.ToDateTime(txt_Dob.Text));
        }

        if (con.State == ConnectionState.Closed)
            con.Open();

        cmd.ExecuteNonQuery();

        lbl_Errormsg.Visible = true;
        lbl_Errormsg.Text = "Record Inserted Successfully";
        con.Close();
    }
    catch (Exception ex)
    {
        lbl_Errormsg.Visible = true;
        lbl_Errormsg.Text = ex.Message;
    }
我收到了错误信息

ExecuteOnQuery:尚未初始化连接属性

我在cmd.ExecuteNonQuery处收到此错误

请帮帮我

我的存储过程是

ALTER Procedure insertdata
(
 @Name Varchar(20),
 @Gender Varchar(6),
 @Email Varchar(20),
 @Dob date
) 
As
 Begin
   Insert into samplelogintable (Name, Gender, Email, Dob)
   Values(@Name, @Gender, @Email, @Dob)
 End

您尚未将命令cmd与SqlConnection关联,因此会出现错误

您需要指定:

cmd.Connection = con;
在submitdata方法中

由于SqlCommand实现,因此最好在使用块时使用它,如:

using (SqlCommand cmd = new SqlCommand())
{

    cmd.Parameters.Clear();
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.CommandText = "insertdata";
    cmd.Connection = con;
    .... your code

}

您尚未将命令cmd与SqlConnection关联,因此会出现错误

您需要指定:

cmd.Connection = con;
在submitdata方法中

由于SqlCommand实现,因此最好在使用块时使用它,如:

using (SqlCommand cmd = new SqlCommand())
{

    cmd.Parameters.Clear();
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.CommandText = "insertdata";
    cmd.Connection = con;
    .... your code

}

为了确认,我必须将代码从if rbt_Male.Checked写到try块的末尾,对吗?@Pritam,您可以在命令执行之前将连接与命令关联,甚至可以在构造函数中为命令指定连接以及命令文本。但是请记住在执行命令之前将连接与命令相关联谢谢,现在我可以理解错误了,现在它工作得很好。非常感谢:谢谢。事实上我是新来的。谢谢你的建议。我以后会记住这一点。我现在有些疑问,如果你有空,你能告诉我吗?实际上,我在通过存储过程向数据库中插入一些数据时遇到了一些问题。提前感谢。为了确认,我必须将代码从if rbt_Male.Checked写到try块的末尾,对吗?@Pritam,您可以在命令执行之前将连接与命令关联,甚至可以在构造函数中为命令指定连接以及命令文本。但是请记住在执行命令之前将连接与命令相关联谢谢,现在我可以理解错误了,现在它工作得很好。非常感谢:谢谢。事实上我是新来的。谢谢你的建议。我以后会记住这一点。我现在有些疑问,如果你有空,你能告诉我吗?实际上,我在通过存储过程向数据库中插入一些数据时遇到了一些问题。提前谢谢。