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)

次に、Select コマンドIncorrect Syntax near".を指していないというエラーをキャッチします。myAdapter.Fill(myDataSet, "tblVisitor")

助けてください。

4

2 に答える 2

1

DataAdapter.FillSqlCommand のビルドではなく、例外がスローされるのは通常の動作です。なぜならFill、ADO.NET がデータベースにクエリを実行する最初のポイントだからです。

「不正な構文の近く」の後に来るのは何ですか? 通常、データベースは SQL-Statement のどこでエラーを見つけるかのヒントを提供するためです。

モデルがこのテストモデルに似ている場合、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
于 2011-07-01T15:52:01.610 に答える
0

データセットのインスタンスを作成しましたか??

これを参照

これをチェックして

于 2011-07-01T15:30:02.430 に答える