当字符串为空时,将NULL插入SQL

Mar*_*rek 3 c# sql sql-server winforms

尝试在我的组合框中没有选择任何内容时插入NULL但是当我这样做时:

prikaz.Parameters.AddWithValue("@odjezd", cb_odjezd.Text == string.Empty ?
                                               null : cb_odjezd.Text);
Run Code Online (Sandbox Code Playgroud)

我收到以下异常:

参数化查询需要参数@ odjezd

愿有人帮我解决这个问题吗?

Tig*_*ran 7

尝试使用DbNull.Value值.

所以它变成了

prikaz.Parameters.AddWithValue("@odjezd", 
         string.IsNullOrEmpty(cb_odjezd.Text) ? DbNull.Value : cb_odjezd.Text);
Run Code Online (Sandbox Code Playgroud)

编辑

在这里遵循已接受的 答案,在你的情况下应该足够了(object)DBNull.Value

问题是C#在这里要求条件相同的类型值,但在一种情况下你设置DbNull.Value在另一个中string.因此,施放DbNull.Value到物体会使"通过"该规则.