我正在开展一个包含数据库的学校项目。 我得到了SQL编程的基础,但我仍然遇到问题。 现在我停留在应该将新数据添加到网格中的代码,但它只是因为某些原因而无法工作..我试图找到解决此问题的方法(正如您从代码中看到的那样),但没有工作.. 这是代码。
private void InsertData()
{
string NewCode = GenerateCode();
string NewLetter = txtNewData.Text;
try
{
Connection.Open();
string AddData = "INSERT INTO DictionaryTest (BinNumber,Letter) VALUE (@NewCode,@NewLetter)";
//SqlDataAdapter DataIns = new SqlDataAdapter(AddData, Connection);
SqlCommand DataAdd = new SqlCommand(AddData, Connection);
DataAdd.Parameters.AddWithValue("@NewCode", "00" + NewCode);
DataAdd.Parameters.AddWithValue("@NewLetter", NewLetter);
//DataAdd.ExecuteNonQuery();
//Connection.Open();
//var dt = new DataTable();
//DataIns.Fill(dt);
Connection.Close();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
我从fucntion GenerateCode()得到的数据还可以, 我试图将它插入文本框中,这是正确的。
答案 0 :(得分:2)
您需要执行sqlcommand
尝试在结束前添加此内容
DataAdd.ExecuteNonQuery();
但要注意SqlConnection和SqlCommand都实现了IDisposable,所以你应该在它们上面调用.Dispose(或者更好的是使用using语句)。
这往往是我编写SQL查询的方式:
using(SqlConnection connection = new SqlConnection("connection string"))
{
using(SqlCommand command = new SqlCommand("command",connection);
{
//Add params as in your example
connection.Open();
command.ExecuteNonQuery(); // Or Execute reader to get results back
connection.close(); //The using statement will close dispose, which will close the connection so this isn't strictly required.
}
}
希望有所帮助。
答案 1 :(得分:1)
将值更改为值
INSERT INTO DictionaryTest (BinNumber,Letter) VALUES (@NewCode,@NewLetter)