Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果数据集有行?_C# - Fatal编程技术网

C# 如果数据集有行?

C# 如果数据集有行?,c#,C#,我还有一个问题 我有以下声明: foreach (DataRow dr_art_custsuply in ds.Tables["CustomerSupplier"].Rows) { //Podaci iz CustomerSupplier-a //Id dobavljača string cust_id; if (!dr_art_custsuply.Table.Columns.Contains("Id")) cust_id = ""; e

我还有一个问题

我有以下声明:

foreach (DataRow dr_art_custsuply in ds.Tables["CustomerSupplier"].Rows)
{
    //Podaci iz CustomerSupplier-a

    //Id dobavljača
    string cust_id;
    if (!dr_art_custsuply.Table.Columns.Contains("Id"))
        cust_id = "";
    else if (dr_art_custsuply["Id"].ToString().Length <= 0)
        cust_id = "";
    else
        cust_id = dr_art_custsuply["Id"].ToString();

    //Naziv dobavljača
    string name;
    if (!dr_art_custsuply.Table.Columns.Contains("Name"))
        name = "";
    else if (dr_art_custsuply["Name"].ToString().Length <= 0)
        name = "";
    else
        name = dr_art_custsuply["Name"].ToString();  

   //GLN
   string gln;
   if (!dr_art_custsuply.Table.Columns.Contains("GLN"))
        gln = "";
   else if (dr_art_custsuply["GLN"].ToString().Length <= 0)
        gln = "";
   else
        gln = dr_art_custsuply["GLN"].ToString();
}
但我有个错误,所以帮帮忙,怎么写


谢谢

只需在循环之前添加此检查(如果没有行,它将不会进入foreach)


如果没有行,则当前代码将跳过
foreach
的正文

foreach (DataRow dr_art_custsuply in ds.Tables["CustomerSupplier"].Rows)
该行将转到
foreach
的末尾,如果没有行,则不会执行正文中的任何代码

更新:

您的问题并不完全清楚,但您似乎需要检查表是否确实在数据集中。将以下
if
包裹在
foreach
周围,以测试其存在性:

if(ds.Tables["CustomerSupplier"] != null)

只需在您的foreach之前添加以下条件:

if(ds.Tables["CustomerSupplier"].Rows.Count > 0)

Oded的答案是正确的。如果您的表中没有行,则它甚至不会启动foreach循环。它会向我提供未设置为对象实例的错误对象引用。您确定数据集中有
CustomerSupplier
表吗?如果我编写此命令,我得到:foreach语句无法对“bool”类型的变量进行操作,因为“bool”不包含“GetEnumerator”的公共定义@Bruno,您可能想检查ds.Tables[“CustomerSupplier”]是否为空,并且您必须将if语句放在foreach的顶部,而不是放在foreach的内部。foreach完成了此操作,但我在执行时仍然有一个错误:对象引用未设置为对象的实例????好的,谢谢,解决方案是这样的:如果(ds.Tables[“CustomerSupplier”!=null),它可以工作!!!谢谢
if(ds.Tables["CustomerSupplier"] != null)
if(ds.Tables["CustomerSupplier"].Rows.Count > 0)