Pri*_*tam 1 c# asp.net sql-server-2008 insertion
我正在尝试使用ASP.Net和C#开发一个示例注册页面.我正在调用存储过程将数据插入数据库.我的数据库是SQL Server 2008.
这是我的代码:
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;
    }
我收到错误消息
ExecuteNonQuery:尚未初始化Connection属性.
我收到此错误 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实现了IDisposable,如果你在使用块中使用它会更好:
using (SqlCommand cmd = new SqlCommand())
{
    cmd.Parameters.Clear();
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.CommandText = "insertdata";
    cmd.Connection = con;
    .... your code
}
| 归档时间: | 
 | 
| 查看次数: | 6013 次 | 
| 最近记录: |