3

1 つのコマンドを実行して SQL Server 2012 データベースに行を挿入しようとしていますが、パラメーターがコードに渡されません。

con.Open();

string query = @"INSERT INTO [dbo].[Users](Username, Password, Role) 
                 VALUES (@u, @p, @r);";
var cmd = new SqlCommand(query, con);

cmd.Parameters.AddWithValue("@u", username);
cmd.Parameters.AddWithValue("@p", password);
cmd.Parameters.AddWithValue("@r", role);

cmd.ExecuteNonQuery();

con.Close();

SqlExceptionパラメータ化されたクエリで取得します

'(@u nvarchar(4000),@p nvarchar(4000),@r nvarchar(1))INSERT INTO ' には、指定されていないパラメーター '@u' が必要です。

私の見方では、コマンドを実行する前にパラメーターを渡しています。不足しているものを見つけるのを手伝ってくれる人はいますか?

4

2 に答える 2

1

追加: Cmd.CommandType = CommandType.StoredProcedure; または、Cmd.CommandType = CommandType.Text; 必要に応じて

于 2018-11-13T10:12:24.660 に答える