不能对nvarchar 调用方法
代码:
public void bind()
{
string str = @"select blog.ID,blog.UserID, Case blog.Pass When 1 Then '是' else '否' end as Pass ,user.UserName from blog inner join [user] on blog.ID = user.BlogID";
DataSet ds = new DataSet();
SqlConnection cone=new SqlConnection (@"Server=.\sqlexpress;uid=zcy;pwd=111111;DataBase=MyBlogDB");
SqlDataAdapter da = new SqlDataAdapter(str, cone);
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
}
blog,和 user 是两个数据表
===================================================
错误提示: da.Fill(ds); 不能对nvarchar 调用方法
诚心求教!
------解决方案--------------------select a.ID,a.UserID, (case a.Pass When 1 Then '是' else '否' end) as Pass,b.UserName from blog a inner join [user] b on a.ID = b.BlogID
------解决方案-------------------- string str = @"select blog.ID,blog.UserID, (Case blog.Pass When 1 Then N'是' else N'否' end) as Pass ,user.UserName from blog inner join [user] on blog.ID = user.BlogID";
------解决方案--------------------查询分析器执行看看
------解决方案--------------------
user都加上[user] 试试
网上找到的:
不知道大家调用存储过程的时候有没有遇到过这样的情况,"开头的标识符太长,最大长度为128",记得上个星期为了这个问题搞死我了
不过最终还是被聪明的我解决了,下面写一下怎么解决的。
如果你调用的存储过程是用双引号的话就会出现上面的错误,但是用单引号就不会了~~~
双引号的最大限制就是128
那么我们就不要用双引号用单引号,但是用单引号里面如果有用到双引号就比较麻烦了,所以我们用两个单引号代替一个双引号~~~
嘻嘻,问题就解