我是c#的新手。我试图将文本框中的值插入到我的数据库中的表中。
表名:地址
字段:name(varchar(50)), 年龄(INT) 市(NCHAR(10))
当我尝试从数据库中检索值时,它运行正常。 这是我的代码。请帮我纠正。
string s = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True";
SqlConnection a = new SqlConnection(s);
a.Open();
SqlCommand comm = new SqlCommand("INSERT INTO [address](name,age,city) VALUES(@na,@ag,@ci)");
string na = textBox1.Text;
int ag = int.Parse(textBox2.Text);
string ci = textBox3.Text;
comm.Parameters.Add("@na", System.Data.SqlDbType.VarChar,50).Value = na;
comm.Parameters.Add("@ag", System.Data.SqlDbType.Int).Value = ag;
comm.Parameters.Add("@ci", System.Data.SqlDbType.NChar,10).Value = ci;
comm.Connection = a;
comm.ExecuteNonQuery();
MessageBox.Show("okay");
a.Close();
这些值不会反映在数据库中。
答案 0 :(得分:3)
尝试使用此代码:
string connectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True";
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand insertCommand = connection.CreateCommand())
{
insertCommand.CommandText = "INSERT INTO address(name,age,city) VALUES (@na,@ag,@ci)";
insertCommand.Parameters.Add("@na", na);
insertCommand.Parameters.Add("@ag", ag);
insertCommand.Parameters.Add("@ci", ci);
insertCommand.Connection.Open();
insertCommand.ExecuteNonQuery();
}
}