这个也有问题????????????
if(dt.Rows.Count<5)
{
int tmp = 5-dt.Rows.Count;
for(int i=0;i<tmp;i++)
{
DataRow myDataRow = dt.NewRow();
myDataRow[0] = "-";//这一行出错!
dt.Rows.Add(myDataRow);
}
}
出错提示:值类型与列类型不匹配不能在 DocID 列中存储 <->。所需类型是 DataRow。
问题点数:10、回复次数:2Top
1 楼singlepine(小山)回复于 2006-07-02 18:30:27 得分 10
if(dt.Rows.Count<5)
{
int tmp = 5-dt.Rows.Count;
DataRow myDataRow ;
for(int i=0;i<tmp;i++)
{
myDataRow = dt.NewRow();
myDataRow["DocID"] = "-";
//myDataRow["DocID"] = tmp;
dt.Rows.Add(myDataRow);
}
}Top
2 楼BWZY(如果没有电脑,我还会是那么帅!!!!!)回复于 2006-07-02 18:50:01 得分 0
to :singlepine(小山)
没解决!
myDataRow[0] = "-";和 myDataRow["DocID"] = "-";应该没区别吧!而且列名是变化的,具体可看下面代码!
/// <summary>
/// 将DataReader 转为 DataTable
/// </summary>
/// <param name="DataReader">DataReader</param>
public static DataTable ConvertDataReaderToDataTable(SqlDataReader dataReader)
{
DataTable datatable = new DataTable();
DataTable schemaTable = dataReader.GetSchemaTable();
//动态添加列
foreach(DataRow myRow in schemaTable.Rows)
{
DataColumn myDataColumn = new DataColumn();
myDataColumn.DataType = myRow.GetType();
myDataColumn.ColumnName = myRow[0].ToString();
datatable.Columns.Add(myDataColumn);
}
//添加数据
while(dataReader.Read())
{
DataRow myDataRow = datatable.NewRow();
for(int i=0;i<schemaTable.Rows.Count;i++)
{
myDataRow[i]= dataReader[i].ToString();//也是这里出错
}
datatable.Rows.Add(myDataRow);
myDataRow = null;
}
schemaTable = null;
dataReader.Close();
return datatable;
}
vs2005 ,asp.netTop




