以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  用关键词作为列名时,代码执行错误  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=9146)

--  作者:红叶
--  发布时间:2011/2/28 15:28:00
--  用关键词作为列名时,代码执行错误

Dim cmd1 As New SQLCommand
cmd1.C
cmd1.commandText = "Select Count(*) From {Users} Where Name = \'管理员\'And Group = \'管理员\' And Password = \'888\'"
If cmd1.ExecuteScalar = 0 Then
    cmd1.commandtext = "Insert Into Users (Name,Group,Password) Values(\'管理员\',\'管理员\'\'888\')"
    cmd1.ExecuteNonQuery
End If

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图未命名.png
图片点击可在新窗口打开查看

--  作者:红叶
--  发布时间:2011/2/28 15:30:00
--  

Dim cmd1 As New SQLCommand
cmd1.C
cmd1.commandText = "Select Count(*) From {Users} Where Name = \'管理员\'And [Group] = \'管理员\' And Password = \'888\'"
If cmd1.ExecuteScalar = 0 Then 
    cmd1.commandtext = "Insert Into Users (Name,Group,Password) Values(\'管理员\',\'管理员\'\'888\')"
    cmd1.ExecuteNonQuery
End If

在Group加上[]这一样出现这个错误提示


--  作者:狐狸爸爸
--  发布时间:2011/2/28 15:38:00
--  

1、都加上[]:

 

Select Count(*) From {Users} Where [Name] = \'管理员\' And [Group] = \'管理员\' And [Password] = \'888\'

 

2、如果可以的话,建议列名不要用Group、User、Password这样的关键词。


--  作者:红叶
--  发布时间:2011/2/28 15:50:00
--  

1,都加上[]还是不行

2,因为是按事例中的自定义设置的,表名和列名

   记不记得以前我反映过定向表的时候,这些表名和列名也出现过问题,回来你在2月22日更新中已处理

   是不是这次这个也算子BUG,狐爸,你得看看


--  作者:狐狸爸爸
--  发布时间:2011/2/28 15:51:00
--  

按道理不会出现错误,做个例子上传看看


--  作者:狐狸爸爸
--  发布时间:2011/2/28 15:52:00
--  

这里也应该加上[]:

 

Insert Into [Users] ([Name],[Group],[Password]) Values(\'管理员\',\'管理员\'\'888\')


--  作者:红叶
--  发布时间:2011/2/28 15:52:00
--  

我试过了,的确是表名和列名的问题,真的是BUG

我是在AfterOpenProject中设置的以上代码

狐爸,想办法解决一下,当然不想改已设置好的表名和列名


--  作者:狐狸爸爸
--  发布时间:2011/2/28 15:53:00
--  
不是bug,看6楼,搞不定做例子上传我看看。
--  作者:红叶
--  发布时间:2011/2/28 15:58:00
--  

经测试

这里也应该加上[]:

 

Insert Into [Users] ([Name],[Group],[Password]) Values(\'管理员\',\'管理员\'\'888\')
这样可以,但是为什么呢?


 


--  作者:红叶
--  发布时间:2011/2/28 16:01:00
--  

同样的道理

AfterOpenProject中判断"表A"(加载后的表)是否存一行而且只存在一行,如果不存行就增加一行,如果存在多行就删除多余的行