下面是我的代码:
myCommand = New SqlCommand("SELECT VisitorID, VisitorName, Skill FROM tblVisitor LEFT JOIN tblSkill ON tblVisitor.SkillID = tblSkill.SkillID", myConnection)
myAdapter = New SqlDataAdapter(myCommand)
myAdapter.Fill(myDataSet, "tblVisitor")
tblView.DataSource = myDataSet.Tables(0)
然后它捕获一个错误Incorrect Syntax near".
,它指向myAdapter.Fill(myDataSet, "tblVisitor")
而不是Select命令。
请帮忙。
答案 0 :(得分:1)
在DataAdapter.Fill
上抛出异常而不是构建SqlCommand是一种正常行为。因为Fill
是ADO.NET查询数据库的第一个点。
“语法不正确”之后会出现什么?因为通常数据库会给你一个提示,在SQL语句中找到错误的位置。
如果您的模型与此测试模型类似,那么您的SQl语句似乎是正确的:
declare @tblVisitor table(
VisitorID int,
VisitorName varchar(100),
SkillID int
)
declare @tblSkill table(
SkillID int,
Skill int
)
INSERT INTO @tblVisitor VALUES(1,'Name1',1);
INSERT INTO @tblVisitor VALUES(2,'Name2',2);
INSERT INTO @tblVisitor VALUES(3,'Name3',3);
INSERT INTO @tblSkill VALUES(1,100);
INSERT INTO @tblSkill VALUES(2,200);
INSERT INTO @tblSkill VALUES(3,300);
SELECT VisitorID, VisitorName, Skill
FROM @tblVisitor tblVisitor LEFT JOIN
@tblSkill tblSkill ON tblVisitor.SkillID = tblSkill.SkillID
结果:
VisitorID VisitorName Skill
1 Name1 100
2 Name2 200
3 Name3 300
答案 1 :(得分:0)