C#プログラムでストアドプロシージャを呼び出す際、Sizeプロパティの異常な例外String[3]が0の無効なサイズを持ちます。
この問題を持つストアドプロシージャは、varcharまたはnvarcharの型パラメータが存在することが特徴です
呼び出し時のこのパラメータの定義は次のように近いです。 SqlParameter para = new SqlParameter("@paraname", DBType.String);
回避策:outパラメータには指定された長さが必要なので、次のように初期化します: 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);
コードをコピーします
|