C# 从表视图读取时崩溃
我有一个名为C# 从表视图读取时崩溃,c#,sql-server-2012,C#,Sql Server 2012,我有一个名为Symbols\u Master 我正在尝试使用C#从该视图获取数据。这是我的密码: SqlConnection connMits = new SqlConnection("test\\dev05;Initial Catalog=xyz;Integrated Security=True"); SqlCommand command = new SqlCommand(); command.CommandType = CommandType.Text; command.CommandTe
Symbols\u Master
我正在尝试使用C#从该视图获取数据。这是我的密码:
SqlConnection connMits = new SqlConnection("test\\dev05;Initial Catalog=xyz;Integrated Security=True");
SqlCommand command = new SqlCommand();
command.CommandType = CommandType.Text;
command.CommandText = "select top 2000 Name from Symbols_Master where TypeID=10 and Active=1";
command.Connection = connMits;
//Option 1:
SqlDataAdapter myAdapter = new SqlDataAdapter();
myAdapter.SelectCommand = command;
DataSet myDataSet = new DataSet();
myAdapter.Fill(myDataSet);
//Option 2:
DataTable table = new DataTable();
table.Load(command.ExecuteReader());
//Option 3:
SqlDataReader reader = command.ExecuteReader();
我已经尝试了3种不同的方法来执行上面的wriiten查询,但都不起作用。我总是会遇到崩溃附加信息:无效的对象名称“Symbols\u Master”。
我是否在这里做错了什么,或者是否有其他方法可以阅读视图?似乎“符号主控”不可用。确保该表存在。连接字符串可能错误。检查区分大小写。从Sql Management Studio运行该命令 看起来您的视图不存在,或者您正在错误的数据库中检查它。您可能需要在连接字符串中指定数据库名称,如下所示:
const string sStr = "Server = MYSERVER\\SQLEXPRESS; Database = YOURDATABASE; Integrated Security = SSPI";
所以在你的情况下是这样的:
SqlConnection connMits = new SqlConnection("Server = MYSERVER\\SQLEXPRESS; Database = YOURDATABASE;Initial Catalog=xyz;Integrated Security=True");
为视图指定架构。您的视图可能具有与
dbo
不同的模式,或者您用来连接的用户具有不同的默认模式。或者您的视图不存在连接字符串中的初始目录是abc。初始目录是数据库名称,如果您将其包含在带有USE语句的SQL语句中,则不需要它。@jdweng,abc只是一个示例,我实际上在代码中编写了数据库名称。@lad2025,它的dbo架构,并且使用相同的连接,如果我对表执行查询,它工作正常。正如我在SQL management studio中看到的那样,视图也存在。我查看了错误的数据库。我不太了解SqlConnection字符串。