如何将null插入数据库?

Zo *_*Has 8 c# asp.net c#-2.0

您好我试图在数据库列中插入null取决于gridview datakeys值(如果是""将null插入数据库)但是,我在数据库列中获得一个空格''.

string sbcId = gvTest.DataKeys[gr.RowIndex]["myColumn"].ToString();
 insgnp.Parameters.Add(new OleDbParameter("EMPID", (sbcId==""?DBNull.Value.ToString():sbcId)));
Run Code Online (Sandbox Code Playgroud)

Kla*_*sen 20

你必须重写你的代码:

if(string.IsNullOrEmpty(sbcId))
    Parameters.Add(new OleDbParameter("EMPID", DBNull.Value)); 
else
    Parameters.Add(new OleDbParameter("EMPID", sbcId)); 
Run Code Online (Sandbox Code Playgroud)

你所拥有的三元if语句的问题是它的返回类型必须始终相同,这就是你不能使用它的原因(string和DbNull.Value不兼容)


Jon*_*nna 9

使用DBNull.Value,而不是DBNull.Value.ToString.(使用.NET中的其他参数集合类型null也可以使用,但我不是100%肯定OleDbParameter).

至于第三级运营商.不要强制转换为字符串,而是将字符串强制转换为对象:

sbcId=="" ? DBNull.Value : (object)sbcId
Run Code Online (Sandbox Code Playgroud)


Pre*_*gha 5

你需要使用DBNull.ValueDBNull.Value.ToString()

DBNull.Value.ToString() 是 ''

这个程序给

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("'{0}'", DBNull.Value.ToString());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

替代文字