1

当我点击一个按钮时,它应该保存我对数据库所做的更改,这是按钮的代码:

DataRow drow = sql.ds.Tables["Stagiaire"].NewRow();
        Boolean allowAdd = false;
        if (nom.Text != "" && prenom.Text != "")
            allowAdd = true;
        if (allowAdd)
        {
            drow[1] = imgData;
            drow[2] = nom.Text.ToUpper();
            drow[3] = prenom.Text;
            drow[4] = sexe.SelectedItem.ToString();
            drow[5] = naiss.Text;
            drow[6] = email.Text;
            drow[7] = tele.Text;
            drow[8] = adresse.Text;
            drow[9] = niveau.Text;
            drow[10] = filiere.Text;
            drow[11] = stage.SelectedItem.ToString();
            drow[12] = service.SelectedItem.ToString();
            drow[13] = encadrant.SelectedItem.ToString();
            drow[14] = etablissement.SelectedItem.ToString();
            sql.ds.Tables["Stagiaire"].Rows.Add(drow);
            SqlCommandBuilder cmb = new SqlCommandBuilder(daStagiaire);
            daStagiaire.Update(sql.ds, "Stagiaire");
            XtraMessageBox.Show("Bien Ajouter !");
        }

我的问题是:如果文本控制器为空,我如何将 NULL 值插入数据库

4

3 回答 3

3

传递DBNull.Value给数据库:

drow[11] = string.IsNullOrWhitespace(stage.SelectedItem)
           ? (object) stage.SelectedItem.ToString() 
           : DBNull.Value;
于 2012-07-28T16:15:29.633 回答
1

对于每个字段,您需要检查字符串是否包含值。如果它有一个值,则传递该值,如果它没有一个值,则传递 NULL。

drow[1] = string.IsNullOrWhitespace(imgData)
           ? (object) imgData : DBNull.Value;

drow[2] = string.IsNullOrWhitespace(nom.Text)
           ? (object) nom.Text.ToUpper : DBNull.Value;

...对其余项目执行相同的逻辑。

在这里,我使用单行 IF THEN 语句。查看 One-liner if statements,如何转换此 if-else-statement以获取更多信息。

于 2012-07-28T16:23:43.673 回答
0

你可以用dbnull.value

但请确保在获取此 null 值时,添加适当的 null 检查

于 2012-07-29T13:45:42.037 回答