我使用的是VS Express 2012、SQL Server 2012。我有一个表(computers)和两行10列(HaHu_ID、Serial_Number、品牌、型号、操作系统、处理器、硬盘、内存、ST、速度)。
我已经在这个网站上阅读了尽可能多的帖子,试图创建到SQL Server的vb.net接口。我成功地将它们连接在一起,并使用
SELECT * FROM computers但是当我尝试其他命令时,比如
SELECT * FROM computers
WHERE 'HaHu_ID' = '101'它返回一个空的DataGridView行!我试着把'HaHu_ID‘改成随机的,但是仍然是空行。显示了正确的列名,但行都为空。
当我尝试另一个命令"SELECT 'HaHu_ID','Brand‘FROM computers“时,它返回:
Column1---|--Column2
-HaHu_ID--|--Brand
-HaHu_ID--|--Brand列名已更改为"Column1和column2“,如您所见,各行都填充了应该是列名的内容!令人沮丧的是,我尝试了"SELECT 'HaHu','Brand_ID‘FROM computers“(数据库中不存在的列),结果返回:
Column1---|--Column2
---HaHu----|--Brand_ID
----HaHu---|--Brand_ID我回到原来的SELECT * FROM computers,它又可以工作了!
下面是我的代码:
Dim cs as New SqlConnection...
cs.Open()
'Dim da2 as New SqlDataAdapter("SELECT * FROM computers WHERE 'HaHu_ID' = '101'", cs)
Dim da2 as New SqlDataAdapter("SELECT * FROM computers", cs)
Dim table as New DataTable()
table.Locale = System.Globalization.CultureInfo.InvariantCulture
da2.Fill(table)
BindingSource1.DataSource = table
dataGrid1.DataSource = BindingSource1
cs.Close()(我无法复制和粘贴它,因为我现在在另一台计算机上)。所以select * from computers语句运行得很好,但是我一尝试其他方法,它就不起作用了。
为什么会这样呢?谢谢。
发布于 2013-04-06 04:01:20
单引号用于指定字符或字符串。下面的SQL语句选择字符串'HaHu_ID‘和字符串'Brand',并为computers表中的每条记录返回。由于没有分配别名,因此服务器返回默认值Column1、Column2等。
SELECT 'HaHu_ID', 'Brand' FROM computers要转义列名,请使用方括号,如下所示:
SELECT [HaHu_ID], [Brand] FROM [computers]https://stackoverflow.com/questions/15842322
复制相似问题