[英]SQL Server error: ExecuteNonQuery: Connection property has not been initialized
I am trying to develop a sample registration page using ASP.Net and C#. 我正在尝试使用ASP.Net和C#开发示例注册页面。 I am calling a stored procedure to insert the data to database.
我正在调用存储过程以将数据插入数据库。 My database is SQL Server 2008.
我的数据库是SQL Server 2008。
This is my code: 这是我的代码:
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;
}
I am getting the error message 我收到错误消息
ExecuteNonQuery: Connection property has not been initialized.
ExecuteNonQuery:连接属性尚未初始化。
I am getting this error at cmd.ExecuteNonQuery();
我在
cmd.ExecuteNonQuery();
处收到此错误cmd.ExecuteNonQuery();
Please help me. 请帮我。
My stored procedure is 我的存储过程是
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
You haven't associated your command cmd
with your SqlConnection, that is why you are getting the error. 您尚未将命令
cmd
与SqlConnection关联,这就是为什么会出现错误的原因。
You need to specify: 您需要指定:
cmd.Connection = con;
in your submitdata()
method. 在您的
submitdata()
方法中。
Since SqlCommand implements IDisposable , its better if you use it within using block like: 由于SqlCommand实现IDisposable ,所以如果在using块中使用它,效果会更好:
using (SqlCommand cmd = new SqlCommand())
{
cmd.Parameters.Clear();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "insertdata";
cmd.Connection = con;
.... your code
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.