ALTER PROCEDURE tableuser
-- Add the parameters for the stored procedure here
@userName varchar(50)
AS
IF EXISTS(SELECT 'True' FROM tbl_user WHERE userName = @userName)
BEGIN
--This means it exists, return it to ASP and tell us
SELECT 'This record already exists!'
END
ELSE
BEGIN
--This means the record isn't in there already, let's go ahead and add it
SELECT 'Record Added'
INSERT into tbl_user(userName) VALUES(@username)
END
這是我在SQL Server Management Studio代碼和下面的參數是C#代碼:表預期已經存在
protected void Button1_Click(object sender, EventArgs e)
{
SqlCommand cmd = new SqlCommand("tableuser", conn);
conn.Open();
SqlParameter param = new SqlParameter();
cmd.Parameters.AddWithValue("@userName", uname.Text);
param.Value = uname.Text;
cmd.Parameters.Add(param);
SqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
Response.Write("Username exists");
}
else
{
cmd.Parameters.AddWithValue("@userName", uname.Text);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
conn.Open();
cmd.ExecuteNonQuery();
Response.Write("Successfully saved...!!!");
conn.Close();
}
}
}
的錯誤出現是:過程或函數' tableuser'需要參數'@userName',它沒有提供。
你的C#代碼非常混亂。它看起來像是檢查行是否存在,如果不存在但是你的存儲過程已經這樣做了,就添加它。我想你在開始時也加入了多個參數,其中一個帶有名字,另一個沒有。 – acfrancis
我剛剛使用了數據庫的一列用戶名。你可以用C#的正確代碼指定我嗎? – user2920046