Visual Studio 2008、C# を使用
過去 2 日間、私は問題に直面していたので、ここで質問しようと思いました。データベースに次のストアド プロシージャがありますStoredProcedure1
。
ALTER PROCEDURE dbo.StoredProcedure1
@ID int,
@Username varchar(10),
@Pass varchar(10),
@Status varchar(10)
AS
INSERT INTO tPasswords(ID, fUsername, fPassword, fStatus)
Values (@ID, @Username, @Pass, @Status)
RETURN
テーブルに行を追加するだけです。
Visual Studio 内のサーバー エクスプローラーから手順を実行すると、すべてがスムーズに実行され、データベースにデータが表示されると、追加したばかりの新しい行が表示されます。
問題は、プログラム内でプロシージャを実行しようとしたときです。
したがって、空のフォーム内でテストするために、ボタンを作成しました。
using System.Data.Sql;
using System.Data.SqlClient;
private void button1_Click(object sender, EventArgs e)
{
string a = "Andreas";
string b = "Andreas2";
string c = "Andreas3";
int _id = 10;
SqlConnection connection = new SqlConnection(
Properties.Settings.Default.dPasswordsConnectionString);
SqlCommand cmd = new SqlCommand(
"StoredProcedure1", connection);
connection.Open();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandTimeout = 600;
cmd.Parameters.Add("@ID", _id);
cmd.Parameters.Add("@Username", a);
cmd.Parameters.Add("@Pass", b);
cmd.Parameters.Add("@Status", c);
int i = cmd.ExecuteNonQuery();
connection.Close();
}
このボタンを押すと、エラーも何もありません.2回押すと、同じ主キーについてエラーが発生するため、手順は機能しています。
しかし、データベースにアクセスすると、新しいデータが挿入されていません。
それが実際に私の問題です。プログラム内からデータベースに書き込むことができません。