C# 如何使用c查找SQL Server中的值是否为NULL#
我想知道从SqlHelper类的ExecuteDataTable返回的c#中的datatable中哪些值为nullC# 如何使用c查找SQL Server中的值是否为NULL#,c#,.net,sql,sql-server,C#,.net,Sql,Sql Server,我想知道从SqlHelper类的ExecuteDataTable返回的c#中的datatable中哪些值为null string select = "select * from testTable"; string val=""; DataTable dt=dbcon.ExecuteDataTable(select); foreach (DataRow dr in dt.Rows) { foreach (DataColumn dc in dt.Columns ) {
string select = "select * from testTable";
string val="";
DataTable dt=dbcon.ExecuteDataTable(select);
foreach (DataRow dr in dt.Rows)
{
foreach (DataColumn dc in dt.Columns )
{
if(dr[dc].Equals (null))
{
val ="null";
}
else
{
val = dr[dc].ToString();
}
}
}
但不幸的是,我没有找到任何方法。如果有办法,请告诉我。提前谢谢。您需要
DBNull.Value
:
if (dr[dc] == DBNull.Value)
除David M的方法外,您还可以使用: 如果(dr[dc]==DBNull.Value)有效! 这就是我需要它的原因。它为给定的表名生成插入脚本
String tableName= "mytable";
string select = "select * from "+tableName ;
DataTable dt=dbcon.ExecuteDataTable(select );
StringBuilder sb = new StringBuilder();
string pk="";
sb.AppendFormat ( "select Name from sys.columns where Object_ID = Object_ID('{0}') and is_identity=1",tableName );
try
{
pk = dbcon.ExecuteScalar(sb.ToString()).ToString();
}
catch
{ }
sb.Remove(0, sb.Length);
foreach (DataRow dr in dt.Rows )
{
sb.Append("Insert INTO " + tableName + " VALUES( ");
foreach (DataColumn dc in dt.Columns )
{
if (dc.ColumnName != pk)
{
string val = dr[dc].ToString();
if (dr[dc] == DBNull.Value)
{
sb.AppendFormat("{0} , ", "null");
}
else
{
sb.AppendFormat("'{0}' , ", dr[dc].ToString());
}
}
}
sb.Remove(sb.Length - 2, 2);
sb.AppendLine(")");
}
我会使用它,因为它的IL略少,效率略高(在处理数据时这是个好主意)。
String tableName= "mytable";
string select = "select * from "+tableName ;
DataTable dt=dbcon.ExecuteDataTable(select );
StringBuilder sb = new StringBuilder();
string pk="";
sb.AppendFormat ( "select Name from sys.columns where Object_ID = Object_ID('{0}') and is_identity=1",tableName );
try
{
pk = dbcon.ExecuteScalar(sb.ToString()).ToString();
}
catch
{ }
sb.Remove(0, sb.Length);
foreach (DataRow dr in dt.Rows )
{
sb.Append("Insert INTO " + tableName + " VALUES( ");
foreach (DataColumn dc in dt.Columns )
{
if (dc.ColumnName != pk)
{
string val = dr[dc].ToString();
if (dr[dc] == DBNull.Value)
{
sb.AppendFormat("{0} , ", "null");
}
else
{
sb.AppendFormat("'{0}' , ", dr[dc].ToString());
}
}
}
sb.Remove(sb.Length - 2, 2);
sb.AppendLine(")");
}