在执行SQL语句时执行If语句时出现问题 - c#
问题描述:
我在c#中添加了一个表单,将数据添加到我的数据表中,它工作正常,我想要的只是在插入数据时返回消息,而我具有带的问题,代码如下:在执行SQL语句时执行If语句时出现问题 - c#
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = ("INSERT INTO datatable (Number_Plate,Registered_Keeper,Make,Model,Year_Of_Make,Colour,Engine_Size,Transmission,Fuel_Type) Values (@Number_Plate,@Registered_Keeper,@Make,@Model,@Year_Of_Make,@Colour,@Engine_Size,@Transmission,@Fuel_Type)");
cmd.Parameters.AddWithValue("@Number_Plate", Plate.Text);
cmd.Parameters.AddWithValue("@Registered_Keeper", Keeper.Text);
cmd.Parameters.AddWithValue("@Make", Make.Text);
cmd.Parameters.AddWithValue("@Model", Model.Text);
cmd.Parameters.AddWithValue("@Year_Of_Make", Year.Text);
cmd.Parameters.AddWithValue("@Colour", Colour.Text);
cmd.Parameters.AddWithValue("@Engine_Size", Engine.Text);
cmd.Parameters.AddWithValue("@Transmission", Transmission.Text);
cmd.Parameters.AddWithValue("@Fuel_Type", Fuel.Text);
SqlDataReader reader = cmd.ExecuteReader();
if (cmd.ExecuteNonQuery()==1)
{
button1.Visible = false;
label10.Visible = true;
}
else
{
button1.Visible = false;
label10.Text = "Data Not Added Please try Again!";
label10.Visible = true;
}
}
当我运行的代码,我得到If语句ANE的错误是一个问题:
目前已经是一个开放的DataReader与此命令关联,必须先关闭该命令。
任何帮助表示赞赏。
答
只是删除这一行(你不需要它)
SqlDataReader reader = cmd.ExecuteReader();
是没有意义的,因为你插入一条记录,而不是获取数据库上。
片断,
// other codes
cmd.Parameters.AddWithValue("@Engine_Size", Engine.Text);
cmd.Parameters.AddWithValue("@Transmission", Transmission.Text);
cmd.Parameters.AddWithValue("@Fuel_Type", Fuel.Text);
if (cmd.ExecuteNonQuery()==1)
{
button1.Visible = false;
// other codes
+0
我试过这段代码,它显示的是标签,但没有将数据插入到数据表中 – user2040978 2013-03-12 19:04:38
答
你必须与数据库建立连接之前。所以你需要先关闭它才能执行。
conn.close()
为什么你有'SqlDataReader reader = cmd.ExecuteReader();'在那里?这没有任何意义......而错误就是完全告诉你。 – 2013-03-12 17:41:57
请阅读['using'语句](http://msdn.microsoft.com/en-us/library/yh598w02(v = vs.110).aspx)。 'SqlConnection','SqlCommand'和'SqlDataReader'(尽管你不需要它)都实现了'IDisposable'。 – 2013-03-12 17:42:20