private static int GetAge()
{
DataTable dt = SqlHelper.ExecuteDataTable("select * from T_Customers where id=4");
T_Customers cust = new T_Customers();
DataRow row = dt.Rows[0];
//int i = null;//因为在C#中,int、bool、DateTime等值类型的数据不可以为null
//string,Person等属于引用类型,可以为null
//值类型:拷贝传递,不可以为null
//引用类型:引用传递,可以为null。
//如果数据库里面存的是NULL,那么用row["TelPhone"]
//取出来的数据的值是DBNull.value,ADO.Net对于C#中int不可以为null
//数据库中int可以为null的一个权衡
//string s1 = null;
//Person p1 = null;
//DBNull.Value; null
//null,DBNULL
//DBNull.Value不等于null
// MessageBox.Show((DBNull.Value == null).ToString());
//if (row["TelPhone"]==DBNull.Value)//判断字段值是否为null的方法
if (row.IsNull("TelPhone"))//更简单的判断数据库中字段值为null的方法
{
cust.TelPhone = null;
}
else
{
cust.TelPhone = (string)row["TelPhone"];
}
if (row.IsNull("Age"))
{
return -1;
}
else
{
int age = (int)row["Age"];
return age;
}
//dataGridView1.DataSource
// = new T_CustomersBLL().ListAll();
}
namespace 可空类型
{
class Program
{
static void Main(string[] args)
{
//object obj = null;
//object i = obj ?? DBNull.Value;
//int? i = null;
//i = 90;
//i++;
//Console.WriteLine(i);
////在值类型后加?就成为了可空类型
//int? age = GetAge();
//Console.WriteLine(age.ToString());
////int age2 = GetAge();
////int age2 = (int)GetAge();
//if (age.HasValue)//判断可空类型的对象是否为null
//{
// int i2 = age.Value;
// //int i = (int)age;
//}
//else
//{
// Console.WriteLine("nulnullnull");
//}
////int w1 = 50;
////int? w2 = w1;
////int w3 = w2;
Console.ReadKey();
}
public static int? GetAge()
{
if (DateTime.Now.Second % 2 == 0)
{
return 20;
}
else
{
return null;
}
}
}
}