使用参数从C#中的文本框插入数据库

时间:2012-06-26 17:48:43

标签: c# sql

我是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();

这些值不会反映在数据库中。

1 个答案:

答案 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();


        }
}