我正在開發(將應用程序數據庫從MS SQL轉換爲MySQL)使用C#.Net和MySQL的應用程序。我的C#代碼和存儲過程在MS SQL中工作得很完美,但是當試圖與MySQL一起獲取參數錯誤時。我的C#代碼是下面和MySQL存儲過程(用CALL重點工作和參數編輯器測試)MySQL和C#.Net存儲過程和多個參數
public DataTable AlapValidateUser(string email, string password,string Type)
{
DataTable dt = new DataTable();
cmd = new MySqlCommand("UserIdValidation");
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = cnn;
string pass = reEncryptpassword(password);
MySqlParameter pramEmail = new MySqlParameter("@v_emailId", email);
pramEmail.Direction = ParameterDirection.Input;
cmd.Parameters.Add(pramEmail);
MySqlParameter pramPassword = new MySqlParameter("@v_password", pass);
pramPassword.Direction = ParameterDirection.Input;
cmd.Parameters.Add(pramPassword);
MySqlDataAdapter adap = new MySqlDataAdapter(cmd);
if (cnn.State != ConnectionState.Open ||
cnn.State == ConnectionState.Broken ||
cnn.State != ConnectionState.Connecting ||
cnn.State != ConnectionState.Executing ||
cnn.State != ConnectionState.Fetching)
cnn.Open();
adap.Fill(dt);
cnn.Close();
return dt;
}
MySQL的存儲過程運行完全是在這裏:
CREATE DEFINER=`root`@`localhost` PROCEDURE `UserIdValidation`(v_emailId NATIONAL VARCHAR(100),v_password
NATIONAL VARCHAR(50))
BEGIN
SELECT UserId ,eMail,BloodGroup
,BloodGroupID,Country AS CountrySlNo ,CountryName ,State ,District
,Location,fName,lName ,DonorType ,LastLogIn ,Validated ,ProfileImage
,MaritalStatus ,Sex ,Height ,Weight ,HealthStatus
,MyFileLocation FROM vwUser WHERE eMail = v_emailId AND
PASSWORD = v_password AND Validated = 'Y';
END$$
在執行過程中的異常,如下:
「不正確的數量爲PROCEDURE alap.UserIdValidation參數;預計2,拿到1」
能否請你幫我找出犯錯要麼。
更新:我的MySQL連接器是v.6.6.5。我已經在C#中的調試模式中檢查了參數是否正確,並且可以在命令對象中看到兩個參數。接下來它試圖填充適配器,因此這個命令對象從Connector傳遞到MySQL,並且缺少參數。我試圖通過創建第三行添加相同的第一個參數,然後gettinng錯誤,相同的參數已經存在。 從這個測試中,我確定它是純粹的MySQL或MySQL連接器錯誤。 我不知道如何在這樣的數據庫中有這麼多人使用mysql這個bug。 謝謝 蘇曼
存儲過程的原型在哪裏?錯誤消息聲稱提供的參數數量不正確;我們應該如何幫助喲而不知道正確的調用模式? – 2013-05-04 21:31:38
您好我已經用mysql代碼更新了我的帖子。 – 2013-05-04 21:53:17