看板 C_Sharp 關於我們 聯絡資訊
最近裝了MSSQL 然後按照之前我用Access的方式改寫 -- ※Default.aspx public int insert(String str1, String str2) { String sql = "INSERT INTO dbo.table1(col1, col2) values(?, ?)"; SqlParameter[] parameters = new SqlParameter[2]; parameters[0] = new SqlParameter("@col1", SqlDbType.VarChar, 255); parameters[0].Value = str1; parameters[1] = new SqlParameter("@col2", SqlDbType.VarChar, 255); parameters[1].Value = str2; using(SqlConnection mAccessConn = new SqlConnection(mSqlDataSource.ConnectionString)) { SqlCommand mAccessCmd = new SqlCommand(sql, mAccessConn); mAccessConn.Open(); mAccessCmd.Parameters.AddRange(parameters); mAccessCmd.ExecuteNonQuery(); mAccessCmd.CommandText = "SELECT @@identity"; return Int32.Parse(mAccessCmd.ExecuteScalar().ToString()); } } -- ※dbo.table1 Column Name Data Type Allow Nulls id int col1 varchar(255) V col2 varchar(255) V -- 然後他在我黃色的那句出現error System.Data.SqlClient.SqlException: Incorrect syntax near '?'. 總覺得我寫法沒錯= =a 因為我之前用一樣的寫法去用Microsoft Access時是正常運作的 這樣會是在加paramters時寫錯嗎 謝謝回答~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.49.204 ※ 編輯: JSL1028 來自: 140.112.49.204 (12/08 16:14)
JSL1028:結果我把(?, ?)改成(@col1, @col2)就好了 不過還是不知道 12/08 16:22
JSL1028:這和Microsoft Access的差別... 12/08 16:22
rularula:http://ppt.cc/qCNb 這篇有詳細說明,請參考參數預留位置 12/09 00:13
rularula:沒有記錯的話,MySQL也是使用"@" 12/09 00:16
JSL1028:看來是不支援的樣子 感謝魯拉魯拉大大! 12/09 01:53