数据库名称是ONLINEEXAM
我在db中有几个表,我想在asp.net的Dropdownlist中列出一些以“set%”字母开头的表名。
我使用以下代码并收到错误:无效的对象名称ONLINEEXAM.dbo.sysobjects
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack == false)
{
paperset();
}
}
private void paperset()
{
try
{
string conn = ConfigurationManager.ConnectionStrings["sqlconn"].ConnectionString;
SqlConnection con = new SqlConnection(conn);
con.Open();
SqlCommand cmd = new SqlCommand(
"select * from ONLINEEXAM.dbo.sysobjects where name like 'Set%'", con);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
ListItem item = new ListItem();
item.Value = dr[0].ToString();
papersetlist.Items.Add(item);
}
dr.Close();
con.Close();
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
finally { }
}
答案 0 :(得分:1)
可能是您正在针对不同的数据库运行查询,在sql server中运行您的查询来检查它。 也试试这个
SqlCommand cmd = new SqlCommand("select * from sys.objects where name like 'Set%'", con);
或使用它来获取所有表格
select * from sys.tables where name like 'Set%'
答案 1 :(得分:0)
查看验证用户ID是否可以访问sysobjects
表。
假设您运行的是SQL2005或更高版本,您还可以查看INFORMATION_SCHEMA
架构并查看TABLES
视图:
Select TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE
from [database.]INFORMATION_SCHEMA.TABLES