private void Button_Click(object sender, RoutedEventArgs e)
{
//数据库中null表示不知道
//需求,如果没有输入姓名则姓名说明不知道。应该为null
string name = txtName.Text;
string age = txtAge.Text;
string height = txtHeight.Text;
object objName;
if (name.Length <= 0)
{
//name = null;
objName = DBNull.Value; //DBNull.Value 用来表示数据库中的NULL
}
else
{
objName = name;
}
object objAge;
if (age.Length <= 0)
{
objAge = DBNull.Value ;
}
else
{
objAge = age;
}
//在SqlParameter 如果值(第二个参数)为null 则表示“没有提供参数的”
SqlHelper.ExecuteNonQuery(@"insert into T_Student (Name,Age,Height)
values(@Name,@Age ,@Height)",
// new SqlParameter ("@Name",name),
//new SqlParameter("@Age" , age),
new SqlParameter("@Name", objName),
new SqlParameter("@Age", objAge),
new SqlParameter ("@Height",height) );
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
DataTable table = SqlHelper.ExecuteDataTables("select * from T_Student where Id = 4");
//在正式项目中 null处理很谨慎
DataRow row = table.Rows[0];
//读取的值如果在数据据中是NULL则返回DBNull。Value
string name;
if (row["Name"] == DBNull.Value )
{
name = null ;
}
else
{
name = (string)row["Name"];
}
// int age = (int)row["Age"];
int? age; //int age 不行,因为 int 不能为null
if (row["Age"] == DBNull.Value)
{
age = null;
}
else
{
age = (int )row["Name"];
}
int height = (int)row["Height"];
}
DBNull的问题
最新推荐文章于 2022-01-12 09:38:32 发布