يتم استخدام الاتصال عن بعد في تطوير المشروع، ويتم إكمال جميع خدمات طلب البيانات من خلال الاتصال عن بعد، لذلك من الطبيعي أن يكون هناك إجراء مخزن لتمرير المعلمات بعد إنشاء المعلمات في منطق الأعمال، ويتم تمريرها إلى خادم الاتصال عن بعد ثم تم إخراجها. حدث خطأ عند تعيين معلمات الإجراء المخزن. لا أتذكر الخطأ المحدد، لقد جربت طرقًا مختلفة ولكنها لم تنجح، كما أنني بحثت عبر الإنترنت ولم أجد أي نتائج وتم حل المشكلة والمثال كما يلي:
الجزء التالي هو المتصل العميل.
1// قم بتعريف المعلمات أولاً
2 سلسلة ثابتة خاصة PARAM_GUID = "@GUID";
3 سلسلة ثابتة خاصة PARAM_VGA_TREEGUID = "@VGATreeGUID";
4 سلسلة ثابتة خاصة PARAM_MB_TREEGUID = "@MBTreeGUID";
5
6 سلسلة ثابتة عامة GetProductTypeByGUID (سلسلة GUID، سلسلة VGATreeID، سلسلة MbTreeID)
7 {
8 حاول
9 {
10 int lcID = Thread.CurrentThread.CurrentUICulture.LCID;
11
12 BaseModel bt = new BaseModel();
13
14 // أنشئ جدول تجزئة وادفع المعلمات بالتسلسل
15 معلمة Hashtable = Hashtable جديدة ()؛
16 معلمة. إضافة (PARAM_PROGUID، GUID)؛
17 معلمة.Add(PARAM_VGA_TREEGUID, VGATreeID);
18 معلمة.Add(PARAM_MB_TREEGUID, MbTreeID);
19
20 //قم بتمرير اسم الإجراء المخزن وجدول التجزئة مع المعلمات
21 DataAccess.DataBase.RunProcedureDataSet(lcID, "GetProductTypeByTreeID", parames, ref bt);
إثنان وعشرون
23 return bt.Rows[0]["ProductType"].ToString();
أربعة وعشرون }
25 صيدًا (استثناء على سبيل المثال)
26 {
27 CommFunction.WriteErrorLogFile("السلسلة الثابتة العامة GetProductTypeByGUID(stirng GUID, String VGATreeID, String MbTreeID) خطأ: " + ex.Message);
28 إرجاع "أخرى" ؛
29 }
30}
31
32
ما يلي هو جانب الخادم:
1 استعلام باطل عام (int lcid، سلسلة SQLString، Hashtable cmdHashtable، المرجع BaseModel baseModel) #region public void Query (int lcid، string SQLString، Hashtable cmdHashtable، المرجع BaseModel baseModel)
2 // ---------------------------------------------- --- ------------------------------------------
3 استعلام باطل عام (int lcid، string SQLString، Hashtable cmdHashtable، ref BaseModel baseModel)
4 {
5 إذا (!CheckRemotingClient())
6 {
7 العودة؛
8}
9 Console.WriteLine(DateTime.Now.ToString() + "Query(" + lcid.ToString() + ", string SQLString, Hashtable cmdHashtable, ref BaseModel baseModel)");
10 int i = cmdHashtable.Count;
11 // فيما يلي بناء معلمات الإجراء المخزن
12 SqlParameter[] cmdParms = new SqlParameter[i];
13 إنت ي = 0;
14 foreach (إدخال القاموس في cmdHashtable)
15 {
16 cmdParms[j] = new SqlParameter(de.Key.ToString(), de.Value);
17 ي++؛
18}
19 Colourful.DBUtility.DbHelperSQL.Query(lcid, SQLString, cmdParms, ref baseModel);
20}
الواحد والعشرون // --------------------------------------------- - ------------------------------------------
22 #منطقة النهاية
http://www.cnblogs.com/blockhead/archive/2006/08/17/479720.html