SQL اسم كائن غير صالح 'addressType'
-
24-09-2019 - |
سؤال
أحصل على الخطأ أعلاه في طريقة 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" كقيمة لقيمة معلمة الأمر في الكود.