原始碼如下:
string strConnection = "dataSource=localhost;database=test;user=root;password=1234";
MySqlConnection myConnection = new MySqlConnection(strConnection);
string strCommand = "SELECT AdID FROM Advertisement";
MySqlCommand myCommand = new MySqlCommand(strCommand, myConnection);
DataTable table = new DataTable();
try
{
myConnection.Open();
table.Load(myCommand.ExecuteReader()); //此行發生錯誤
}
catch { MessageBox.Show("讀取失敗"); }
finally { myConnection.Close(); }
真是奇怪?
我記得Table在Load的時候會自動判斷資料庫中Column的型態,然後自動對Table新增相對應型態的Column啊,明明Table一開始也沒有指定任何型態,怎麼會發生這樣的事情?
找了很久終於找到原因了。
原來AdID這個Column在資料庫中是"自動遞增(Auto Increment)",結果將此Column的Auto INC取消,然後將Default Value設為0 錯誤就消失了^^'''
到現在我還是不知道到底是為什麼,兩者看起來似乎沒有什麼關係啊! 有人知道嗎?
沒有留言:
張貼留言