程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase教程 >> 參數化查詢但未提供該參數(將null插入數據庫)

參數化查詢但未提供該參數(將null插入數據庫)

編輯:SyBase教程

參數化查詢但未提供該參數(將null插入數據庫)


當你是使用參數化查詢時為參數賦值時,比如command.Parameters.Add("@a",SqlDbType.Text,30).Value=a;當a=null是將報錯:

錯參數化查詢 '(@a varchar(100)....' 需要參數 '@a',但未提供該參數

只是因為你給a的值為null,而數據庫中的null(空)是System.DBNull 類型的不是同一類。所以在插入空的時候要用DBNull,而不是null,

所以可以這樣改:

command.Parameters.Add("@a",SqlDbType.Text,30).Value=a ?? DBNull.Value;

?? :?? 運算符稱作 null 合並運算符。如果此運算符的左操作數不為 null,則此運算符將返回左操作數;否則返回右操作數。

但是還是會報下面的錯誤。

\

解決方法:

很簡單只要在後面加上 ToString()就好了;

如下

<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHByZSBjbGFzcz0="brush:sql;">command.Parameters.Add("@a",SqlDbType.Text,30).Value=a ?? DBNull.Value.ToString();

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved