登録フォームがあり、ユーザーが以前に登録していないことを確認したい。
私のコードは以下にあります。(1) call メソッドと (2) パラメータをストアド プロシージャに渡すという 2 つの問題があると思います。私の症状は、これにより、入力パラメーターが初期化されていないという例外が発生することです。
create procedure fakeuser @username nvarchar(250),@codemeli nchar(10),@email nvarchar(50), @user nvarchar(250) output,@code nchar(10)output,@mail nvarchar(50)output
as
if exists(select username,email,codemeli from karbar where username=@username)
set @user=@username
else if exists(select username,email,codemeli from karbar where codemeli=@codemeli)
set @code=@codemeli
else if exists(select username,email,codemeli from karbar where email=@email)
set @mail= @email
C#コードは次のとおりです。
public static string confirm(string username, string email, string codemeli)
{
string constring = "data source=.;database=site;integrated security=true;";
SqlConnection connection = new SqlConnection(constring);
// Command - specify as StoredProcedure
SqlCommand command = new SqlCommand("fakeuser", connection);
command.CommandType = CommandType.StoredProcedure;
SqlParameter param = new SqlParameter("@username", SqlDbType.NVarChar);
param.Direction = ParameterDirection.Input;
param.Value = username;
command.Parameters.Add(param);
SqlParameter param2 = new SqlParameter("@email", SqlDbType.NVarChar);
param2.Direction = ParameterDirection.Input;
param2.Value = username;
command.Parameters.Add(param2);
SqlParameter param3 = new SqlParameter("@codemeli", SqlDbType.NChar);
param3.Direction = ParameterDirection.Input;
param3.Value = username;
command.Parameters.Add(param3);
// Return value as parameter
SqlParameter returnuser = new SqlParameter("@user", SqlDbType.NVarChar);
returnuser.Direction = ParameterDirection.ReturnValue;
command.Parameters.Add(returnuser);
SqlParameter returncode = new SqlParameter("@code", SqlDbType.NChar);
returncode.Direction = ParameterDirection.ReturnValue;
command.Parameters.Add(returncode);
SqlParameter returnmail = new SqlParameter("@mail", SqlDbType.NVarChar);
returnmail.Direction = ParameterDirection.ReturnValue;
command.Parameters.Add(returnmail);
// Execute the stored procedure
connection.Open();
command.ExecuteNonQuery();
connection.Close();
ありがとうございました。