当前位置:编程学习 > C#/ASP.NET >>

sql server 2005:对象名无效?

            string constr = @"Data Source=HOSTXP\SQLEXPRESS;Initial Catalog=db_09;User Id=zhang;Password=;";
            SqlConnection con = new SqlConnection(constr);
            string sqlstr = "select * from 账单";
            SqlDataAdapter sda = new SqlDataAdapter(sqlstr, con);
            DataSet ds = new DataSet();
            sda.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0];

执行到fill函数提示sqlexception,对象名‘账单’无效。
db_09里有好几个表,用其它表都没问题,只有“账单”这个表不行,将表名修改也不行。 --------------------编程问答-------------------- 表是不是空的 --------------------编程问答-------------------- 报对象名无效,一般是没有这账表。 --------------------编程问答-------------------- 你使用SQL查询分析器测试一下SQL语句,看看有什么问题吧
select * from 账单 --------------------编程问答-------------------- 账单表是否存在。 --------------------编程问答-------------------- select * from 账单"; 

应该是没有这张表,

你查一下看

SELECT NAME FROM SYSOBJECTS WHERE XTYPE='U' AND NAME='账单'
--------------------编程问答-------------------- 打开数据库试试 查询 看看 表是否存在 --------------------编程问答-------------------- "select * from [账单]"; 


如果确定存在,可以加个[]试试 --------------------编程问答-------------------- 用“select × from 账单”查:
消息 208,级别 16,状态 1,第 1 行
对象名  '_账单' 无效。 --------------------编程问答-------------------- 加[]也不行,一样的 --------------------编程问答-------------------- connection没有open吧 --------------------编程问答-------------------- string constr = @"Data Source=HOSTXP\SQLEXPRESS;Initial Catalog=db_09;User Id=zhang;Password=;"; 
            SqlConnection con = new SqlConnection(constr); 
            con.Open();
            string sqlstr = "select * from 账单"; 
            SqlDataAdapter sda = new SqlDataAdapter(sqlstr, con); 
            DataSet ds = new DataSet(); 
            sda.Fill(ds); 
            dataGridView1.DataSource = ds.Tables[0]; 
--------------------编程问答-------------------- 那个表不存在吧 --------------------编程问答-------------------- 那个表可以在studio中打开,存在 --------------------编程问答--------------------
引用 8 楼 mybase89 的回复:
用“select × from 账单”查:
消息 208,级别 16,状态 1,第 1 行
对象名  '_账单' 无效。


你在数据库查询一下
SELECT NAME FROM SYSOBJECTS WHERE XTYPE='U' AND NAME LIKE '%账单%'


再看看是哪个,名字是什么,

用“select × from 账单”查:

用X晕,是*

select * from 账单
--------------------编程问答-------------------- SELECT '奖金' FROM SYSOBJECTS WHERE XTYPE='U' AND NAME LIKE '%账单%'

什么也没有提取出来,也没有错误提示

--------------------编程问答-------------------- 遇到过相同的问题,,只是想不起来如何解决的,怪笔记没有做好。

请参考下面的网址

http://hi.baidu.com/flowten/blog/item/4f5fcb1edfdc21fc1ad57609.html --------------------编程问答-------------------- 执行错了,是
SELECT NAME FROM SYSOBJECTS WHERE XTYPE='U' AND NAME LIKE '%账单%'
也是什么也没有 --------------------编程问答-------------------- 我把“账单”改成一个英文名就好了 --------------------编程问答--------------------  string sqlstr = "select *from 表 where exist(select *from 表)";  --------------------编程问答-------------------- 一般这个错都是表明没写对。。。。
你这个情况比较特殊。。。
等高手来吧。 --------------------编程问答-------------------- 前面有没 有引用命名空间?
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,