【发布时间】:2017-10-09 04:55:25
【问题描述】:
当我从下拉列表中选择并输入数量时,我正在尝试使用其 ItemName 获取 sql 列“Price”下的数据(然后将其作为 SQL 行 selecteditemfromdropdown 在 ItemName 列上插入 + Quantity 在 Qty 列上+ 我试图从另一张桌子上得到的价格)。
我使用了一个数据集适配器“datPrice”并将其存储在数据表“tblPrice”中。线上出现错误
int price = Convert.ToInt32(tblPrice.Rows[0]["Price"].ToString());
因为它说
输入的字符串格式不正确
我该如何解决这个错误?
protected void btnSave_Click(object sender, EventArgs e)
{
DataSetTableAdapters.RawMaterialMFTableAdapter datItemName = new DataSetTableAdapters.RawMaterialMFTableAdapter();
DataTable tblItemID = new DataTable();
tblItemID = datItemName.GetDataByItemName(drpItemName.Text);
int itemID = Convert.ToInt32(tblItemID.Rows[0]["ItemID"].ToString());
DataSetTableAdapters.RawMaterialMFTableAdapter datPrice = new DataSetTableAdapters.RawMaterialMFTableAdapter();
DataTable tblPrice = new DataTable();
tblPrice = datPrice.GetDataByPrice(drpItemName.Text);
int price = Convert.ToInt32(tblPrice.Rows[0]["Price"].ToString()); // Error on this line
int total = price * Convert.ToInt32(txtQuantity.Text.ToString());
DataSetTableAdapters.QRawMaterialTableAdapter datData = new DataSetTableAdapters.QRawMaterialTableAdapter();
datData.InsertQueryQRM(itemID, Convert.ToInt32(txtQuantity.Text.ToString()), price, total);
}
【问题讨论】:
-
您是否调试过代码并检查您在
tblPrice.Rows[0]["Price"].ToString()中获得了什么值? -
美元/价格通常存储为小数,你试过吗?
var price = Convert.ToDecimal(tblPrice.Rows[1]["Price"].ToString());**,还要检查第一行是否包含 Price 的数字值。 -
你的意思是我得到的数据类型还是我正在使用的参数?对不起,我不太擅长这个
-
@JeremyThompson 我做了并得到一个错误,上面写着“System.Data.dll 中发生了'System.IndexOutOfRangeException' 类型的异常,但未在用户代码中处理”
-
将索引改为0
标签: c# sql visual-studio