C# 为什么我输入的数据没有存储在数据库中?
调用SqlDataAdapter.Fill以执行INSERT命令是不正确的。Fill方法用于使用SELECT语句从数据库检索记录。在代码中,INSERT语句作为适配器的SelectCommand传递,并在调用Fill时执行,以便将记录添加到数据库表中。但是DataTable代码对象中没有返回值,因为Fill方法使用的SelectCommand没有为其分配SELECT语句 您需要拆分这两个操作,首先对INSERT语句执行ExecuteNonQuery,然后使用正确的SELECT语句创建适配器C# 为什么我输入的数据没有存储在数据库中?,c#,asp.net,sql-server,C#,Asp.net,Sql Server,调用SqlDataAdapter.Fill以执行INSERT命令是不正确的。Fill方法用于使用SELECT语句从数据库检索记录。在代码中,INSERT语句作为适配器的SelectCommand传递,并在调用Fill时执行,以便将记录添加到数据库表中。但是DataTable代码对象中没有返回值,因为Fill方法使用的SelectCommand没有为其分配SELECT语句 您需要拆分这两个操作,首先对INSERT语句执行ExecuteNonQuery,然后使用正确的SELECT语句创建适配器 pu
public List<TextBox> _textBoxes = new List<TextBox>();
protected void btmSubmit_Click1(object sender, EventArgs e)
{
dbDataItem();
}
public void dbDataItem()
{
dc.cnn.Open();
_textBoxes = getTextBox();
//foreach (TextBox text in _textBoxes)
//{
// _textBoxes.Add(text.Text.Trim());
// //StoreValue(text.Text);
//}
foreach (TextBox textBox in _textBoxes)
{
//TextBox txt = new TextBox();
//txt.ID = Panel2.FindControl("textBox").ToString();
string value = textBox.Text;
string query = "select name from DataItem where name = '" + value + "'";
SqlCommand cmd = new SqlCommand(query, dc.cnn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
int count = dt.Rows.Count;
if (count == 0)
{
int i = MaxCode1();
SqlCommand cmd2 = new SqlCommand("insert into DataItem (code,name) values (@code,@name)", dc.cnn);
cmd2.Parameters.AddWithValue("@code", i);
cmd2.Parameters.AddWithValue("@name", value);
SqlDataAdapter da2 = new SqlDataAdapter(cmd2);
DataTable dt2 = new DataTable();
da2.Fill(dt2);
dc.cnn.Close();
}
else
{
Response.Write("<script language='javascript'>alert('This DataItem already exist in database');</script>");
}
}
dc.cnn.Close();
}
您没有运行cmd2
设置参数后,按如下方式运行:
SqlCommand cmd2 = new SqlCommand("insert into DataItem (code,name) values (@code,@name)", dc.cnn);
cmd2.Parameters.AddWithValue("@code", i);
cmd2.Parameters.AddWithValue("@name", value);
cmd2.ExecuteNonQuery()
SqlDataAdapter da2 = new SqlDataAdapter("SELECT * FROM DataItem");
DataTable dt2 = new DataTable();
da2.Fill(dt2);
因此,您的代码如下所示:
cm2.ExecuteNonQuery();
您认为这个标题足以描述您的问题吗?您对DataAdapter和DataTable做了什么?您为什么不直接执行SqlCommand?是否有异常或错误消息?非常感谢先生………我找到了解决方案。。。。。
SqlCommand cmd2 = new SqlCommand("insert into DataItem (code,name) values (@code,@name)", dc.cnn);
cmd2.Parameters.AddWithValue("@code", i);
cmd2.Parameters.AddWithValue("@name", value);
cmd2.ExecuteNonQuery();
dc.cnn.Close();