När man anropar en lagrad propude i ett C#-program har en märklig undantagssträng[3]: egenskapen Size en ogiltig storlek på 0.
Den lagrade proceduren som har detta problem kännetecknas av förekomsten av utparametrar av typen varchar eller nvarchar
Definitionen av denna parameter vid anropstillfället liknar SqlParameter para = ny SqlParameter("@paraname", DBType.String);
Lösning: Out-parametern måste ha en specificerad längd, så den bör initialiseras så här: SqlParameter para = ny SqlParameter ("@paraname", DBType.String, storlek);
- 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);
Kopiera koden
|