فشل استدعاء ADO.NET من جانب العميل في ملء مجموعة البيانات

StackOverflow https://stackoverflow.com/questions/1646508

سؤال

لدي صفحة ويب ASP.NET تحتاج إلى إجراء اتصال SQL Server من جانب العميل في مقطع نصي لملف aspx الخاص بي.أنا أتصل بعملية مخزنة تأخذ بارمًا واحدًا.يعمل هذا sp بشكل جيد في SQL Server Management Studio الذي يقوم بإرجاع السجلات كما هو متوقع.عندما أحاول ملء مجموعة بيانات من مكالمة إلى هذا sp، يتم ملء ds بسجلات صفرية.هل هناك شيء أفتقده بشأن إجراء هذه المكالمة من جانب العميل.هنا هو الكود الخاص بي.أنا من الصعب ترميز parm لأغراض الاختبار.ملاحظة: لدي هذا في محاولة الصيد ولم أحصل على أي أخطاء فقط مجموعة بيانات فارغة.Thnx.

            string strAssignedTo = "Dwight Shoemaker";



            System.Data.DataSet ds = new System.Data.DataSet();
            System.Data.SqlClient.SqlConnection sqlcon = new System.Data.SqlClient.SqlConnection("Data Source=sql394.mysite4now.com;Initial Catalog=ULS_db1;User ID=uls2008;Password=uls2008");
            System.Data.SqlClient.SqlCommand comand = new System.Data.SqlClient.SqlCommand();
            comand.Connection = sqlcon;
            comand.CommandText = "GetAssignedToReport";
            comand.CommandType = System.Data.CommandType.StoredProcedure;

            comand.Parameters.Add(new System.Data.SqlClient.SqlParameter("@assignedTo", System.Data.SqlDbType.VarChar, 50));
            comand.Parameters["@assignedTo"].Value = strAssignedTo;

            System.Data.SqlClient.SqlDataAdapter sqladp = new System.Data.SqlClient.SqlDataAdapter(comand);

            sqlcon.Open();
            sqladp.Fill(ds);
هل كانت مفيدة؟

المحلول

ولقد حاولت التعليمات البرمجية وكان طيب. على الشيء الذي قد يكون الخطأ هو هذا: إذا حاولت ربط gridView مثل: gridView.DataSource= ds; سترى شيئا. لقد حاولت المثال الخاص بك ولكن بدلا من القانون السابق، لقد ربط لgridView مثل هذا: gridView.DataSource = ds.Tables[0]; وأرى السجلات الخاصة بك. اسم العمود: assigned_dt، مع القيم مثل: 2005/07/05، 2005/05/02. هل هذا ما كنت تتوقع. التحيات

نصائح أخرى

لست متأكدا مما تقصده:كود ASP.Net C# دائماً يعمل على خادم الويب، أبداً على جانب العميل.الاثنان لا يختلطان.


تحديث بناءً على تعليقك:

كيف تعلن عن "النص" الخاص بك؟هناك طريقتان للقيام بذلك:

  • واحد <script runat="server"> //code here </script> عنصر.يمكن أن يتعامل هذا مع أي من أحداث الصفحة، بما في ذلك تحميل الصفحة.

  • عناصر البرنامج النصي المضمنة/لسعات النحل. <% %> العلامات التي تتخللها العلامات الخاصة بك.من المفاهيم الخاطئة الشائعة أن التعليمات البرمجية الموجودة في هذه العلامات تعمل عند تحميل الصفحة.وكما تعلمت من استخدامي لكلمة "سوء الفهم"، فهذا هو الحال خطأ.لا يتم تشغيل التعليمات البرمجية الموجودة في هذه العلامات إلا بعد فترة طويلة من دورة حياة الصفحة (PreRender، IIRC).

لاحظ أن العنصر الثاني على وجه الخصوص، أثناء تشغيل هذا الرمز بعد لقد انتهت بالفعل مرحلة ربط البيانات.إذا كنت تريد استخدام مجموعة البيانات هذه كمصدر بيانات لعنصر التحكم، فستحتاج إلى DataBind() يدويًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top