我是初学者并且有一个基本问题。我最近将此代码添加到我的方法
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;
}
答案 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是你最大的盟友。