【发布时间】:2014-11-24 17:46:51
【问题描述】:
我收到 2 个错误。
'string' 不包含'Fill' 的定义并且没有扩展名 接受“字符串”类型的第一个参数的方法“填充”可以是 找到了
和
“System.Data.DataRow”不包含“Item”的定义,也没有 扩展方法“项目”接受类型的第一个参数 'System.Data.DataRow' 可以找到
代码如下:
public partial class account_Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.Add("PartNumber");
dt.Columns.Add("Qty");
dt.Columns.Add("Price");
dt.Columns.Add("ExtPrice");
dt.AcceptChanges();
Session["DT"] = dt;
GridView1.Visible = true;
BindGrid();
}
}
private void BindGrid()
{
GridView1.DataSource = Session["DT"];
GridView1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
// 1off
WebReference.WebServiceTyped ws = new WebReference.WebServiceTyped();
WebReference.CheckPartStatus pq = new WebReference.CheckPartStatus();
DataTable dttemp = new DataTable();
Session["DT"] = dttemp;
pq = ws.CheckPartNumberStatus(TextBox1.Text, TextBox2.Text, "1", "", "", "1");
string price = pq.Parts[0].Cost.ToString();
DataRow dr = default(DataRow);
dr = dttemp.NewRow();
dr["PartNumber"] = TextBox1.Text;
dr["Qty"] = TextBox3.Text;
dr["Price"] = price;
dr["ExtPrice"] = Convert.ToDouble(TextBox3.Text) * Convert.ToDouble(price);
dttemp.Rows.Add(dr);
Session["DT"] = dttemp;
dttemp = null;
BindGrid();
}
protected void Button2_Click(object sender, EventArgs e)
{
WebReference.WebServiceTyped ws = new WebReference.WebServiceTyped();
WebReference.CheckPartStatus pq = new WebReference.CheckPartStatus();
string sql = "SELECT PartNumber, Qty FROM PackageDetail where Package_Name = 'SILVERADO4'";
DataTable dtparts = new DataTable();
String da = ConfigurationManager
.ConnectionStrings["connectionString"].ConnectionString;
da.Fill(dtparts);
//Dim Parts As String = "RANRS5114,RANRS5116,RANRS5118"
//Dim strs() As String
//strs = Parts.Split(",")
for (int i = 0; i <= dtparts.Rows.Count - 1; i++)
{
DataTable dttemp = new DataTable();
Session["DT"] = dttemp;
pq = ws.CheckPartNumberStatus(dtparts.Rows[i].Item["PartNumber"], "", "1", "", "", "1");
string price = pq.Parts[0].Cost.ToString();
DataRow dr = default(DataRow);
dr = dttemp.NewRow();
dr["PartNumber"] = dtparts.Rows[i].Item["PartNumber"];
dr["Qty"] = dtparts.Rows[i].Item("Qty");
dr["Price"] = price;
dr["ExtPrice"] = dtparts.Rows[i].Item["Qty"] * Convert.ToDouble(price);
dttemp.Rows.Add(dr);
Session["DT"] = dttemp;
dttemp = null;
}
BindGrid();
}
}
如果有人帮助我,我将不胜感激,我已尽一切努力解决它。
谢谢。
【问题讨论】:
-
错误信息是对的。你有
da.Fill,你到底期望它做什么?da是一个字符串,你的意思是要创建一个数据适配器吗? -
OHHH 是的,这就是我的错可以找到类型“System.Data.DataRow”
-
提示:您收到的错误消息包含行号。这些数字准确显示错误发生在哪一行。检查行号以查找错误发生的位置。 提示 2:您的 .Item 调用之一与其他调用不同。行号会告诉你是哪一个。为了将来参考,请在您的问题中包含行号并突出显示它们所属的行。由于您的问题缺乏细节,您得到了许多低质量的答案。 提示 3:
'(' != '[' -
感谢 Hugo,但我仍然不明白 dtparts.Rows[i].Item["PartNumber"] 有什么问题
-
为什么你认为错误在那一行?我比较怀疑。您是否尝试在错误消息中查找行号?知道你的错误发生在哪里真的很有帮助,我不能推荐它。有了这个和我的第三个提示,您应该能够立即解决此问题。