'System.Data.DataRowCollection'不包含“Length”的定义

时间:2011-10-17 15:13:34

标签: c# .net asp.net visual-studio-2010

我是初学者并且有一个基本问题。我最近将此代码添加到我的方法

    if (dt.Rows.Length > 0)

但是,我返回错误:'System.Data.DataRowCollection'不包含'Length'的定义,并且没有可以找到接受类型'System.Data.DataRowCollection'的第一个参数的扩展方法'Length'(你错过了使用指令或汇编引用吗?),我不是说要为我编写代码(除非你想:),但如果有人能指出我正确的方向,这对你来说真是太棒了。这是一些有用的代码。

     using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Configuration;

public class Database
{
    private string serverPCICUSTOM, serverPCI;
    private string ConnectionStringPCICUSTOM, ConnectionStringPCI;
    private SqlConnection connectionPCICUSTOM, connectionPCI;
    private string trackingNumber;
    private string soptype;
    private string orderNumber;

         public bool UpdateOrderToShipped(string order)
    {
        orderNumber = order;
        string batch = ConfigurationManager.AppSettings["SuccessfulOrderBatch"];
        string statement = "UPDATE SOP10100 SET BACHNUMB = '"+ batch +"' WHERE SOPNUMBE = @SOPNUMBE";
        SqlCommand comm = new SqlCommand(statement, connectionPCI);
        comm.Parameters.Add("SOPNUMBE", orderNumber);
        try
        {
            comm.Connection.Open();
            comm.ExecuteNonQuery();
            comm.Connection.Close();
        }
        catch(Exception e)
        {

            comm.Connection.Close();
            KaplanFTP.errorMsg = "Database error: " + e.Message;
        }

        statement = "SELECT SOPTYPE FROM SOP10100 WHERE SOPNUMBE = @SOPNUMBE";
        comm.CommandText = statement;
        SqlDataAdapter da = new SqlDataAdapter(comm);
        DataTable dt = new DataTable();
        da.Fill(dt);
        if (dt.Rows.Length > 0)      //error here
        {
        comm.Connection.Open();
            soptype = dt.Rows[0]["SOPTYPE"].ToString();
        }
        else
        {
        }

            return true;
    }

5 个答案:

答案 0 :(得分:2)

检查一下:

使用

if (dt.Rows.count> 0)

而不是

if (dt.Rows.length> 0)

希望我的回答可以帮助您解决问题。

答案 1 :(得分:1)

使用Count,而不是Length

if (dt.Rows.Count > 0)

一般来说,只要有集合,该属性就会被称为Count以获取项目数。对于许多集合类型都是如此,包括DataRowCollection,List,Dictionary或实现ICollection<T>接口的任何其他类型(或非泛型等价物)。那是因为Count属性来自界面。

例外是数组。可以使用Length获取数组中的项目数。

答案 2 :(得分:1)

答案 3 :(得分:1)

你应该尝试:

if (dt.Rows.Count > 0)

答案 4 :(得分:1)

MSDN是你最大的盟友。

DataRowCollection.Count