سؤال

أحصل على الخطأ أعلاه في طريقة VS 2008 C# عندما أحاول استدعاء إجراء SQL GetColumnNames المخزنة من VS. يقبل هذا SP معلمة إدخال واحدة ، اسم الجدول ، ويعمل بنجاح من SSMS. حاليًا أقوم باختيار جدول AdventureWorks OddressType لسحب أسماء الأعمدة من هذا الجدول. أستطيع أن أرى جدول Teh AdventureWorks متاحًا في VS من اتصال الخادم / اتصال البيانات. وأرى كلا من جدول OdventType و GetColumnNames SP في Explorer.

لكني ما زلت أتلقى هذا الخطأ مدرجًا أعلاه. فيما يلي مقتطف رمز C# الذي أستخدمه لتنفيذ هذا:

public static displayTableColumns (سلسلة tt) {sqldatareader dr = null ؛ سلسلة tablename = tt ؛ string connstring = "data source =. ؛ exchangedbfilename = " c: program files microsoft sql server mssql10.mssqlserver mssql data 30 ؛ مثيل المستخدم = خطأ "؛ سلسلة errormsg ؛ sqlConnection conn2 = new sqlconnection (connstring) ؛ sqlCommand cmd = conn2.createcommand () ؛

    try
    {
        cmd.CommandText = "dbo.getColumnNames";
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Connection = conn2;
        SqlParameter parm = new SqlParameter("@TableName", SqlDbType.VarChar);
        parm.Value = TableName;
        parm.Direction = ParameterDirection.Input;
        cmd.Parameters.Add(parm);
        conn2.Open();
        dr = cmd.ExecuteReader();
    }
    catch (Exception ex)
    {
        errorMsg = ex.Message;
    }

وعندما أقوم بفحص errormsg ، فإنه يقول ما يلي:

"   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)\r\n   

في System.Data.sqlclient.sqlinternalconnection.onerror (استثناء Sqlexception ، Boolean BreakConnection) r n
في system.data.sqlclient.tdsparser.throwexceptionandwarning (TdsParserStateObject stateObj) r n
في system.data.sqlclient.tdsparser.run (Runbehavior runbehavior ، sqlcommand cmdhandler ، datustream sqldatareader ، bulkcopysimpleresultsetsetsetsetsetsetsults
at System.Data.sqlclient.sqldatareader.consumemetadata () r n
at System.Data.sqlclient.sqldatareader.get_metadata () r n
في system.data.sqlclient.sqlCommand.FinishExecuteReader (Sqldatareader DS ، Runbehavior Runbehavior ، string refetoptionsstring) r n
في system.data.sqlclient.sqlCommand.RunexecuteReaderTDS (CommandBehavior cmdbehavior ، Runbehavior Runbehavior ، Boolean Returnstream ، Boolean Async) r n
في system.data.sqlclient.sqlcommand.runexecutereader (commandbehavior cmdbehavior ، runbehavior runbehavior ، boolean returnstream ، طريقة السلسلة ، نتيجة dbasyncresult) r n
في system.data.sqlclient.sqlcommand.runexecutereader (commandbehavior cmdbehavior ، runbehavior runbehavior ، boolean returnstream ، string method) r n
في system.data.sqlclient.sqlcommand.executeReader (سلوك commandbehavior ، طريقة السلسلة) r n في system.data.sqlclient.sqlcommand.executeReader () r n
في adonet_namespace.adonet_methods.displaytableColumns (سلسلة TT) في c: المستندات والإعدادات admin my documents visual studio 2008 projects addFiLetosql addfiletosql adonet methods.cs: line 35 "

حيث الخط 35

DR = cmd.executereader () ؛

هل كانت مفيدة؟

المحلول

لقد راجعت بسرعة قاعدة بيانات AdventureWorks وأرى أن الجدول "addressType" ينتمي إلى المخطط "الشخص". حاول تمرير "person.addressType" كقيمة لقيمة معلمة الأمر في الكود.

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