vb.net - 使用数据集填充数据适配器时出错

时间:2011-07-01 15:21:09

标签: vb.net dataset dataadapter

下面是我的代码:

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命令。

请帮忙。

2 个答案:

答案 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)

您是否为数据集创建了实例?

参考此

check this