2011-07-01 46 views
0

是我的代碼:vb.net - 錯誤填充數據適配器,數據集下面

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")不選擇命令。

請幫忙。

+1

測試一下語句在SQL Server中找到看看你的陳述的哪一部分不是很好。檢查如果語句中的所有列都存在db中。錯誤指向fill語句,因爲這是執行selectCommand時的位置。所以錯誤必須在聲明中。 –

回答

1

這是一個正常行爲的異常被DataAdapter.Fill,而不是建設的SqlCommand拋出。因爲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 
0

您是否爲數據集創建了實例?

請參閱本

check this

+0

當然,我宣稱它是一個全局變量。只是當我將我的sql語句從''SELECT * FROM tblVisitor'''更改爲上述sql語句時發生問題。前一個很好 –

相關問題