怎么样判断数据库中表中字段是否可以为空,我将数据库中表绑定到数据集DataSet中,代码实现如下:
public DataSet GetDataSet(string sql)
{
DataSet ds = new DataSet();
using (SqlConnection con = new SqlConnection(@"data source=WEIHU001\SQLEXPRESS;integrated security=true;database=Text;"))
{
using (SqlCommand cmd = con.CreateCommand())
{
cmd.CommandType = CommandType.Text; cmd.CommandText = sql;
SqlDataAdapter sda = new SqlDataAdapter(cmd); sda.Fill(ds);
}
}
return ds;
}
现在我想通过绑定到数据集中的表来判断表中的某列是否可以为空。用过GetDataSet().Tables[0].Columns[0].AllowDBNull这个属性,发现所有的值都是true,查过之后发现这个属性似乎适用于编程创建的表,而不适合从数据库中获得的表。
是某行的某列还是,而是这一列全部为Null
select * from t1 where col1 is not null
我是想判断这一列是否是非空的,问题没描述清楚
在程序动态的判断表中列的非空状态,是想用户在DataGridView控件中添加数据时提示用户该字段是否可以为空
@尐sんΙ頭: 那应该是要得到这个表的定义的信息。
举个例子:
SELECT name,is_nullable FROM sys.columns
WHERE object_id = (SELECT object_id FROM sys.objects
WHERE name ='rolebasic' ) AND name='ruid'
rolebasic是表名
ruid 是你要检测的列
is_nullable 为 0 表示不能为null ,1代表可以为null
数据库有isnull的函数啊 select isnull(name) from table
都说了,我是想在用户动态添加数据的时候判断
@尐sんΙ頭: 你想太多了
Tables[0].Columns[0] == DBNull.Value
是否可以为空,不是等于空,你得这种写法我知道,我就是想写一个公共的方法,用来判断当用户添加数据时此列是否可以为空