プロジェクトの開発では Remoting が使用されており、すべてのデータ要求サービスは Remoting を通じて完了するため、ビジネス ロジックでパラメーターが構築された後、パラメーターを Remoting サーバーに渡すためのストアド プロシージャが当然存在します。ストアドプロシージャのパラメータを設定するときにエラーが発生しました。具体的なエラーは覚えていません。ネットで検索しても結果は見つかりませんでした。問題は解決されました。例は次のとおりです。
次の部分はクライアントの呼び出し元です。
1//最初にパラメータを宣言します
2 private const string PARAM_GUID = "@GUID";
3 private const string PARAM_VGA_TREEGUID = "@VGATreeGUID";
4 private const string PARAM_MB_TREEGUID = "@MBTreeGUID";
5
6 パブリック静的文字列 GetProductTypeByGUID(文字列 GUID、文字列 VGATreeID、文字列 MbTreeID)
7 {
8 試してみる
9 {
10 int lcID = スレッド.CurrentThread.CurrentUICulture.LCID;
11
12 BaseModel bt = 新しい BaseModel();
13
14 //ハッシュテーブルを構築し、パラメータを順番にプッシュします
15 ハッシュテーブルパラメータ = new Hashtable();
16 parames.Add(PARAM_PROGUID, GUID);
17 parames.Add(PARAM_VGA_TREEGUID, VGATreeID);
18 parames.Add(PARAM_MB_TREEGUID, MbTreeID);
19
20 //ストアド プロシージャ名とパラメータを含むハッシュ テーブルを渡します
21 DataAccess.DataBase.RunProcedureDataSet(lcID, "GetProductTypeByTreeID", parames, ref bt);
22
23 return bt.Rows[0]["ProductType"].ToString();
24 }
25 キャッチ (例外例)
26 {
27 CommFunction.WriteErrorLogFile("public static string GetProductTypeByGUID(stirng GUID, String VGATreeID, String MbTreeID) エラー: " + ex.Message);
28 「その他」を返します。
29 }
30}
31
32
サーバー側は次のとおりです。
1public void Query(int lcid, string SQLString, Hashtable cmdHashtable, ref BaseModel BaseModel)#region public void Query(int lcid, string SQLString, Hashtable cmdHashtable, ref BaseModel BaseModel)
2 // ----------------------------------------------- ---------------------------------------------------
3 public void Query(int lcid, string SQLString, Hashtable cmdHashtable, ref BaseModel BaseModel)
4 {
5 if (!CheckRemotingClient())
6 {
7 戻ります。
8}
9 Console.WriteLine(DateTime.Now.ToString() + "Query(" + lcid.ToString() + "、文字列 SQLString、ハッシュテーブル cmdHashtable、ref BaseModel BaseModel)");
10 int i = cmdHashtable.Count;
11 //以下はストアド プロシージャ パラメータを構築します
12 SqlParameter[] cmdParms = 新しい SqlParameter[i];
13 int j = 0;
14 foreach (cmdHashtable の DictionaryEntry)
15 {
16 cmdParms[j] = 新しい SqlParameter(de.Key.ToString(), de.Value);
17 j++;
18}
19 Colorful.DBUtility.DbHelperSQL.Query(lcid, SQLString, cmdParms, refbaseModel);
20}
21 // - - - - - - - - - - - - - - - - - - - - - - - - --------------------------------------
22 #エンドリージョン
http://www.cnblogs.com/blockhead/archive/2006/08/17/479720.html