我正在尝试使用ado.net访问和插入带有c#的数据。我在我的计算机上安装了sql server,因此我觉得机器名称将是服务器名称。以下是我用来连接数据库的步骤。
private void dbButton_Click(object sender, EventArgs e)
{
connectionString = "Server = ITSL-SALT-33; Database = sampleADO; User Id = sa; Password = abcd;";
try
{
SqlConnection conn = new SqlConnection(connectionString);
conn.Open();
MessageBox.Show("Successfully connected to the database.");
insertButton.Enabled = true;
loadButton.Enabled = true;
}
catch (Exception exc)
{
Console.WriteLine(exc.ToString());
MessageBox.Show("Connection attempt failed");
}
}
以下是插入按钮的代码:
private void insButton_Click(object sender, EventArgs e)
{
cmdString="INSERT INTO books (name,author,price) VALUES (@val1, @va2, @val3)";
SqlCommand comm = new SqlCommand();
comm.Connection = conn;
comm.CommandText= cmdString;
comm.Parameters.AddWithValue("@val1", txtBook.Text);
comm.Parameters.AddWithValue("@val2", txtAuthor.Text);
comm.Parameters.AddWithValue("@val3", txtPrice.Text);
comm.Parameters.AddWithValue("@val3", txtComments.Text);
try
{
MessageBox.Show(conn.DataSource);
Console.WriteLine(comm.ExecuteNonQuery());
Console.ReadLine();
}
catch(Exception exc)
{
MessageBox.Show("In Insert catch");
}
}
当我尝试插入数据时,它始终在消息框中显示“in insert catch”。我无法理解故障在哪里,或者我是否有任何缺失的步骤。我是新手使用数据库或sql的东西,只是试图学习如何与.net中的数据库进行交互。请指导。
答案 0 :(得分:0)
我认为将@va2
查询中的INSERT
更改为@val2
只会出现一个小错误,现在应该可以正常运行..
cmdString="INSERT INTO books (name,author,price) VALUES (@val1,
@ va2 ,@val3)";