Parameter index out of range (1 > number of parameters, which is 0)

數據庫錯誤:Parameter   index   out   of   range   (1   >   number   of   parameters,   which   is   0). 
錯誤發生原因其實很簡單,就是當設置參數時,沒有相應的問號與之匹配(或者根本就沒有?號).
如果是:Parameter   index   out   of   range   (26   >   number   of   parameters,   which   is   25). 
翻譯爲:找到了25個問號,卻插入了26個值,導致參數越界(根據得到的信息打印將很容易判斷數據是否與數據庫字段匹配等小問題)。


與sql語句有關的原因如下:
1.?號被單引號包圍。
(如setString(1,"slkdjfkd");時sql語句爲:insert into table1 (c1,c2) values ('?','?'))。
此時?會被作爲參數傳入,而不會再傳入 setString裏面的值。


2.sql語句中沒有?號,在後面用到了set語句。(如:select * from table);
此時無需傳值。傳值就會出錯。


3.初學者很常見的錯誤:?---?
這兩個問號是不同了,因爲一個是中文,一個是英文,如果在sql語句中寫入的是英文,將無法識別。




其他原因:
1.連接已經關閉。 
 如果與其他操作語句一起公用conn時,如果上一操作已經關閉連接,則會報錯。表現爲:時而能夠進行操作,時而不能。
2.pstm沒有初始化,無驅動包,得到連接出錯等基礎問題……


都是一些比較基礎的東西,希望大家不要犯這種錯誤,浪費寶貴時間。
(轉自http://blog.sina.com.cn/s/blog_6df227a40101709h.html)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章