0

私はC#の初心者です。テキストボックスの値をデータベースのテーブルに挿入しようとしています。

テーブル名:アドレス

フィールド:name(varchar(50))、age(int)、city(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();

値はデータベースに反映されません。

4

1 に答える 1

4

このコードで試してください:

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


        }
}
于 2012-06-26T17:56:46.207 に答える