寻求帮助

 在 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);
  }

寻求解决方法

你可能感兴趣的:(寻求帮助)