Ko kličemo shranjeno proceduro v C# programu, se pojavi nenavadna izjema String[3]: lastnost Velikost ima neveljavno velikost 0.
Shranjeni postopek, ki ima ta problem, je značilen po prisotnosti zunanjih parametrov tipa varchar ali nvarchar
Definicija tega parametra ob klicu je podobna SqlParameter para = new SqlParameter("@paraname", DBType.String);
Rešitev: Izhodni parameter mora imeti določeno dolžino, zato ga je treba inicializirati takole: SqlParameter para = new SqlParameter("@paraname", DBType.String, size);
- DBHelper db = new DBHelper();
- SqlParameter[] param = new SqlParameter[5];
- param[0] = new SqlParameter("ID", SqlDbType.Int);
- param[0].Direction = ParameterDirection.Output;
- param[1] = new SqlParameter("UserID", userid);
- param[2] = new SqlParameter("UserName", SqlDbType.NVarChar, 50);
- param[2].Direction = ParameterDirection.Output;
- param[3] = new SqlParameter("Password", pass);
- param[4] = new SqlParameter("Result", SqlDbType.Int);
- param[4].Direction = ParameterDirection.Output;
- var spc = db.Crm_ExecuteNonQueryReturns("pUserLogin",param);
Kopiraj kodo
|