2011-12-16 93 views
1

我無法在任何地方找到對此錯誤的任何引用。我在本地PC上運行SQL Express 2008,並創建了許多表。除了一個「聯繫人」之外,所有功能都可以正常工作它包含姓名,電話號碼等等,目前有10行(不是真實的數據,只是東西)。當我在Management Studio中查看它時,有10行,但是當我執行以下操作時,只返回前3行。我運行了DBCC CHECKDB並沒有發生任何錯誤。我可以添加新的行,沒有問題。SELECT * FROM不返回所有行

VB.Net代碼:

conString = String.Format("server={0};uid={2};pwd={3};database={1};", server, database, dbID, dbPass) 
myConn = New SqlConnection("") 

'Open the connection. 
myConn.ConnectionString = conString 
myConn.Open() 

Dim com As String 
com = "SELECT * FROM contact" 

myCmd = myConn.CreateCommand 
myCmd.CommandText = com 
myReader = myCmd.ExecuteReader() 

Do While 
    myReader.Read() 
    Dim contact As nameClass = New nameClass 
    contact.id = myReader.GetInt32(0) 
    contact.name = myReader.GetString(1) 
    contact.supplierID = myReader.GetInt32(2) 
    contact.customerID = myReader.GetInt32(3) 
    contact.phone = myReader.GetString(4) 
    contact.fax = myReader.GetString(5) 
    contact.mobile = myReader.GetString(6) 
    contact.email = myReader.GetString(7) 
    contact.notes = myReader.GetString(8) 
Loop 
myReader.Close() 
myConn.Close() 

從SSMS的數據庫內容是:

Index Name Supp Cust  phone  fax  mobile  eMail   created    user 
+--+--------+-----+-----+---------+---------+----------+------------+------------------------+--- 
16 | fred a | -1 | -1 | 09809809| 09809809| 090980980| lkjlkjlkjlk| 2011-12-15 11:12:25.000| 3 
17 | fred b | -1 | -1 | 098098 | 09809809| 09809809 | llkjlkjlkkl| 2011-12-15 11:13:02.000| 3 
18 | fred c | 1 | -1 | 0980980 | 09809809| 09809809 | lkjhkljlk | 2011-12-15 11:13:34.000| 3 
19 | fred d | -1 | 2 | 98098098| 09809809| 09809890 | kjhkjhkj | 2011-12-15 11:13:54.000| 3 
1 | John | -1 | -1 | 89769887| 0980980 | 0980980 | kjhkjkj | 2011-11-12 23:34:12.000| 3 
2 | Bob | -1 | -1 |   |   |   | ;lk;lkl; | 2011-11-12 23:40:39.000| 3 
3 | Mike | -1 | -1 |   |   |   |   | 2011-11-12 23:44:18.000| 3 
4 | Louise | -1 | -1 | 98798789|   |   |   | 2011-11-12 23:43:38.000| 3 
5 | Colin | -1 | -1 |   |   |   |   | 2011-12-12 10:34:15.000| 3 
6 | harry | 3 | -1 | 93872983|   |   | kasjhkajsh | 2011-12-14 02:16:07.000| 3 
+0

嗨,我正在一臺PC上工作,所以是同一臺服務器。 我不認爲你可以在SQL Express上運行跟蹤嗎? 如果我在分析器中運行SQL請求我得到所有10條記錄如果我從程序運行請求,我只能得到3條記錄,完全相同的請求 Schema是dbo,如果Irun dbo.contact它使n差異。 我確實使用myReader遍歷數據,只得到3個循環。 附加信息,我已通過SMS中的編輯功能刪除了此表中的一些記錄。我還有另一張表格,其中有10條記錄,其中我沒有刪除任何記錄,並且顯示爲OK。 – John 2011-12-16 10:46:53

回答

1

幾點建議:

你確定你的應用程序連接到相同的服務器和數據庫是從SQL Management Studio連接到的數據庫?

您可以嘗試運行sql跟蹤並查看應用程序發送到數據庫的查詢。

我假設你在查詢分析器中運行「SELECT * FROM contact」。什麼架構所有者,dbo?

試着改變你的查詢SELECT * FROM dbo.contact」在您的應用程序並從查詢分析器運行相同的查詢。

而且(如評論所說),你將需要遍歷讀者實際讀出數據