2007年10月27日 星期六

MySqlParameter 的使用 in C#

今天在寫用 C# 連結 MySQL 的程式,使用的是 MySQL AB 所提供的 Connector/Net 5.1

不過使用到 MySqlParameter 的時候,發生了一些問題.....

原本使用 SqlParameter 的時候,在設定 SQL 語法時,都會類似以下這樣...
insert into table1(col1, col2, col3) values(@col1, @col2, @col3)
上面的語法在連結 SQL Server 後可以正確執行。但是到了 MySQL 上,卻無法正確的指定 MySqlParameter 的 value (全部都會變成 Null)

後來 google 了一下,發現原來是連結 MySQL 就不一樣了! 原本的符號「@」要改為符號「?」(新版的 connector 改掉了!)

因此語法會變成以下這樣:
insert into table1(col1, col2, col3) values(?col1, ?col2, ?col3)
所以設定 MySqlParameter 時,就必須類似以下寫法:
MySqlParameter para1 = new MySqlParameter("?col1", MySqlDbType.VarChar, 50);
MySqlParameter para2 = new MySqlParameter("?col2", MySqlDbType.VarChar, 50);
MySqlParameter para3 = new MySqlParameter("?col3", MySqlDbType.VarChar, 50);
如此一來資料就可以正確新增囉!

參考資料

沒有留言:

張貼留言