1

我在我的 Asp.net 页面中使用 LINQ 来访问数据库。

在用户看到所有文本框都为空的表单之前,我有一个带有一些文本框和一个提交按钮的表单:

txtPName.Text =null;
txtPFamily.Text = null;
txtPUsername.Text = null;
txtPPassword.Text = null;

并在单击按钮后将值插入Databse,但如果文本框为空,我希望null在数据库中插入值但在数据库中插入空:

 Users u = new Users()
 {
      FirstName = txtPName.Text,
      LastName = txtPFamily.Text,
      Username = txtPUsername.Text,
      Password = txtPPassword.Text
 };
4

3 回答 3

7

您可以使用条件运算符。由于Text属性永远不会返回null,您可以安全地检查它们的 Length 是否为 0(文本为空):

Users u = new Users()
{
    FirstName = txtPName.Text.Length == 0 ? null : txtPName.Text,
    LastName = txtPFamily.Text.Length == 0 ? null : txtPFamily.Text,
    Username = txtPUsername.Text.Length == 0 ? null : txtPUsername.Text,
    Password = txtPPassword.Text.Length == 0 ? null : txtPPassword.Text
};

如果您还想将空格视为“空”,请使用String.IsNullOrWhiteSpace,例如:

FirstName = String.IsNullOrWhiteSpace(txtPName.Text) ? null : txtPName.Text
于 2013-09-04T07:44:59.467 回答
0

您可以使用 string.IsNullOrEmpty 或 string.IsNullOrWhiteSpace 方法来检查您的 TextBox 值。

//这会将文本框的字符串设置为一个值(如果有的话)或null

string yourValueToPutIntoDatabase = (string.IsNullOrEmpty(yourTextBox.Text)) ? yourTextBox.Text : null;

如果您更舒服,也可以在 if 语句中使用它:

string valueToPutInDatabase;
if(string.IsNullOrEmpty(yourTextBox.Text))
{
 //Your textbox was empty
 valueToPutInDatabase = null;
}
else
{
 valueToPutInDatabase = yourTextBox.Text;
}

试试这个。。

于 2013-09-04T07:45:56.443 回答
0

尝试这个

if(txtPName.Text==""){
u.FirstName =null;
}
if(txtPFamily.Text==""){
u.LastName =null;
}
if(txtPUsername.Text==""){
u.Username =null;
}
if(txtPPassword.Text==""){
u.Password =null;
}
于 2013-09-04T07:50:11.200 回答