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

发布于 2024-11-18 08:23:51 字数 472 浏览 4 评论 0原文

下面是我的代码:

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)

然后它捕获一个错误 In Correct Syntax close".,它指向 myAdapter.Fill(myDataSet, "tblVisitor") 而不是 Select 命令。

请帮助。

below is my code:

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)

then it catch an error as Incorrect Syntax near". which it points to myAdapter.Fill(myDataSet, "tblVisitor") not the Select command.

Please help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

盛夏已如深秋| 2024-11-25 08:23:51

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

It's a normal behavior that the exception is thrown on DataAdapter.Fill and not on building the SqlCommand. Because Fill is the first point where ADO.NET will query your database.

What comes after "Incorrect syntax near"? Because normally the database will give you a hint where to find the error in SQL-Statement.

Your SQl-Statement seems to be correct if your Model is similar to this test-model:

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

The result:

VisitorID   VisitorName  Skill
   1          Name1       100
   2          Name2       200
   3          Name3       300
红衣飘飘貌似仙 2024-11-25 08:23:51

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

参考这个

检查这个

have you created instance for your dataset??

refer this

check this

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文