-2

テキストボックスからデータベースに値を挿入しようとすると、データベースで値が更新されません。しかし、新しく挿入された行は一時的に利用可能です。選択クエリを使用して行を取得するときに挿入すると、新しい行が利用可能になります。ソリューションを閉じて再度開くと、新しく挿入された行がなくなります。データベース エクスプローラーのテーブルは常に更新されません。

これが私のコードです。

            string connectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True";
            string na = textBox1.Text;
            int ag = int.Parse(textBox2.Text);
            string ci = textBox3.Text;
            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.AddWithValue("@na", na);
                    insertCommand.Parameters.AddWithValue("@ag", ag);
                    insertCommand.Parameters.AddWithValue("@ci", ci);


                    insertCommand.Connection.Open();
                    insertCommand.ExecuteNonQuery();
                    insertCommand.Connection.Close();
                    MessageBox.Show("finish");

                }

                //connection.Close();
            }

テーブル名は「住所」で、name(varchar(50))、age(int)、city(nchar(10)) の 3 つのフィールドがあります。

4

2 に答える 2

2

ビンにコピーしないために、mdf ファイルを右クリックしてプロパティを選択し、コピーしないを選択してみてください。

ここに画像の説明を入力

于 2012-06-26T18:58:02.183 に答える
0

エラーで「C:\Users\Thangamani\documents\visual studio 2010\Projects\AddressBook\AddressBook\bin\Debug\」と言っていました。デバッグ中にローカル コピーにアタッチしています。

データベースをコピーしていないので、mdf ファイルが存在しないため、エラーが発生します。

(もう作成していない) ローカル コピーではなく、元のデータベースにアクセスするように接続文字列を変更します。

于 2012-06-26T19:31:13.813 に答える