在 DataTable dataTable = SystemTools.ConvertDataReaderToDataTable(reco);说值类型与列类型不匹配不能在 SaleOrderID 列中存储 <2>。所需类型是 DataRow。
private void BindSaleOrderData(int nSaleChanceID)
{
///定义获取数据的类
salesweb.Components.SaleOrder order = new salesweb.Components.SaleOrder();
SqlDataReader reco = order.GetSaleOrderBySaleChance(nSaleChanceID);
///创建DataSet数据源
DataTable dataTable = SystemTools.ConvertDataReaderToDataTable(reco);
DataSet dataSet = new DataSet("SaleOrder");
dataSet.Tables.Add(dataTable);
///设定控件的数据源
SaleOrderList.DataSource = dataSet;
///绑定控件的数据
SaleOrderList.DataBind();
}
SalesOrder.cs类中有
public SqlDataReader GetSaleOrderBySaleChance(int nSaleChanceID)
{
///定义类SQLHelper
SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper();
///定义保存从数据库获取的结果的DataReader
SqlDataReader dr = null;
///创建访问数据库的参数
SqlParameter[] paramList = {
sqlHelper.CreateInParam("@SaleChanceID",SqlDbType.Int,4,nSaleChanceID)
};
try
{
///执行存储过程
sqlHelper.RunProc("Pr_GetSaleOrderBySaleChance",paramList,out dr);
}
catch(Exception ex)
{
///抛出执行数据库异常
SystemError.SystemLog(ex.Message);
throw new Exception(ex.Message,ex);
}
///返回从数据库获取的结果
return(dr);
}
寻求解决方法