[問題] ASP.NET MSSQL

看板C_Sharp (C#)作者 (JSL)時間13年前 (2011/12/08 15:54), 編輯推噓0(005)
留言5則, 2人參與, 最新討論串1/1
最近裝了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)

12/08 16:22, , 1F
結果我把(?, ?)改成(@col1, @col2)就好了 不過還是不知道
12/08 16:22, 1F

12/08 16:22, , 2F
這和Microsoft Access的差別...
12/08 16:22, 2F

12/09 00:13, , 3F
http://ppt.cc/qCNb 這篇有詳細說明,請參考參數預留位置
12/09 00:13, 3F

12/09 00:16, , 4F
沒有記錯的話,MySQL也是使用"@"
12/09 00:16, 4F

12/09 01:53, , 5F
看來是不支援的樣子 感謝魯拉魯拉大大!
12/09 01:53, 5F
文章代碼(AID): #1Eu6qqah (C_Sharp)
文章代碼(AID): #1Eu6qqah (C_Sharp)