asp.net c# 图书管理系统

来源:百度知道 编辑:UC知道 时间:2024/05/22 12:31:12
在应使用条件的上下文(在 'CROSS' 附近)中指定了非布尔类型的表达式。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: 在应使用条件的上下文(在 'CROSS' 附近)中指定了非布尔类型的表达式
行 35: Da.Fill(ds);

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["cuiweiConnectionString7"].ConnectionString);
SqlDataAdapter Da = new SqlDataAdapter("select * from dbo.动漫书 CROSS JOIN dbo.生活书籍 CROSS JOIN dbo.军事书籍 CROSS JOIN dbo.娃娃书 where dbo.动漫书 CROSS JOIN dbo.生活书籍 CROSS JOIN dbo.军事书籍 CROSS JOIN dbo.娃娃书 =DropDownList1.selectText and 'booktype'='" + TextBox1.Text + "'", conn);

DataSet ds = new DataSet();
Da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();

sql语句有问题

CROSS JOIN dbo.娃娃书 =DropDownList1.selectText and 'booktype'='" + TextBox1.Text + "'",
这里语法有问题,是你贴错了还是原来就是这么写的?
这样写肯定是错的

交叉连接(CROSS JOIN)没有WHERE 子句,它返回连接表中所有数据行的笛卡尔积,其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。

以下资料可供参考:
(一)内连接

内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接分三种:

1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。

2、不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、<=、<、!>、!<和<>。

3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。

例,下面使用等值连接列出authors和publishers表中位于同一城市的作者和出版社:

SELECT *
FROM authors AS a INNER JOIN publishers AS p
ON a.city=p.city
又如使用自然连接,在选择列表中删除authors 和publishers 表中重复列(city和state):

SELECT a.*,p.pub_id,p.pub_name,p.country
FROM authors AS a INNER JOIN publishers AS p
ON a.city=p.c