c#怎样读取DataTable中的数据

c#怎样读取DataTable中的数据,第1张

数据放入datatable中之后,如何读取指定行列的数据呢?

我放的不是数据库中的数据,没有表头也不止一列,比如我想找第三行第四列的数据。

现在我已经写了代码如下:

try

{

string strConn;

strConn = @"Provider=MicrosoftJetOLEDB40;Data Source= C:\Users\Administrator\Desktop\cstestxls;Extended Properties='Excel 80;HDR=False;IMEX=1'";

OleDbConnection OleConn = new OleDbConnection(strConn);

OleConnOpen();

String sql = "SELECT FROM [Sheet1$]";

OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);

DataSet OleDsExcle = new DataSet();

OleDaExcelFill(OleDsExcle, "Sheet1");

DataTable dt = OleDsExcleTables[0];

//这里要怎么继续写下去呢

label1Text = ;

OleConnClose();

}

catch (Exception ex)

{

label1Text = exMessage;

}

假设你上图表格数据为 DataTable dt,列分别为AA,BB,CC,DD

var query = from p in dtAsEnumerable()

//分组

group p by new

{

t1 = pField<int>("AA")ToString()Substring(0, pField<int>("AA")ToString()Length - 2),

t2 = pField<double>("BB"),

t3 = pField<string>("CC")

} into g

select new

{

ColA = gKeyt1,

ColB = gKeyt2,

ColC = gKeyt3,

ColD = gSum(c => cField<int>("DD"))

};

//转datatable

DataTable dtNew = dtClone();

DataRow drNew;

foreach (var p in query)

{

drNew = dtNewNewRow();

drNew["AA"] = pColA;

drNew["BB"] = pColB;

drNew["CC"] = pColC;

drNew["DD"] = pColD;

dtNewRowsAdd(drNew);

}

dtNew 为最终结果

注:转换过程中要考虑空值的情况

select count() from table

c#几年不看了,具体语法忘记了

大概也就是connection,然后statement 然后执行sql 然后返回一个ResultSet 再取出结果集

DataTable dt = AuctionOrdersPayCarPrice(uid, payStatus, pageIndex, pageSize);

此处空一行)

if (dtRowsCount > 0)

{

//新表

DataTable newDt = new DataTable();

List<string> listColums = new List<string>();

//复制表结够

newDt = dtClone();

(此处空一行)

//新表中的列数据类型为Decmail的改为string

foreach (DataColumn col in newDtColumns)

{

listColumsAdd(colColumnName);

if (colDataTypeFullName == "SystemDecimal")

{

colDataType = TypeGetType("SystemString");

}

}

(此处空一行)

foreach (DataRow row in dtRows)

{

DataRow newDtRow = newDtNewRow();

foreach(DataColumn column in dtColumns)

{

if (columnDataTypeFullName == "SystemDecimal")

{

newDtRow[columnColumnName] = (ConvertToDecimal(row[columnColumnName]) / 10000)ToString("c") + "万";

}

else

{

newDtRow[columnColumnName] = row[columnColumnName];

}

}

newDtRowsAdd(newDtRow);

}

(此处空三行)

var obj = new { state = true, message = newDt };

ResponseWrite(JsonConvertSerializeObject(obj));

}

else

{

var obj = new { state = false, message = "没有查询到信息" };

ResponseWrite(JsonConvertSerializeObject(obj));

}

扩展资料:

关于上述注意事项

DataTable中数据:ID NAME   State1   A 12   B 03   C 0State数据列为int型,想让它在页面读取显示时,1显示为非工作日转工作日,0显示为工作日转非工作日。

详细原因:当在做列转换时

1,数据库中类型和要修改成的类型不一致。

2,遇到DataTable中有数据则无法进行数据转换的问题。

解决方法:如果直接修改当前datatable里制定列的数据会提示因为有数据所以不让修改,而通过if判断直接赋值又会提示数据类型不同而拒绝 *** 作,报错。

C#连接数据库,查询后怎么输出查询结果可以通过一下方式

1:输出的结果可以是集合对象

2:输出的结果可以是DataSet或者DataTable

下面的案例提供了两种方式:

方法返回的是集合对象,内部使用的是DataSet

public IList<Student> GetAllStudents1()

{

IList<Student> dataList = new List<Student>();

DataSet dataSet = new DataSet();// 声明并初始化DataSet

SqlDataAdapter dataAdapter; // 声明DataAdapter

using (SqlConnection conn = new SqlConnection(connString))

{

// 定义command对象

SqlCommand command = new SqlCommand(dboOwner + "usp_SelectStudentsAll", conn);

commandCommandType = CommandTypeStoredProcedure;

//Command定义带参数的SQL语句的参数

//commandParametersAdd("@stuID", SqlDbTypeInt);

//给输入参数赋值

//commandParameters["@stuID"]Value = 5;

connOpen();

// 初始化 DataAdapter

dataAdapter = new SqlDataAdapter(command);

// 填充 DataSet

dataAdapterFill(dataSet, "dataSetName");

// 处理数据集中的数据

foreach (DataRow row in dataSetTables[0]Rows)

{

Student model = new Student();

modelStuId = ConvertToInt32(row["stuID"]);

modelStuName = ConvertToString(row["stuName"]);

dataListAdd(model);

}

}

return dataList;

}

以上就是关于c#怎样读取DataTable中的数据全部的内容,包括:c#怎样读取DataTable中的数据、C#用LINQ *** 作Datatable数据库、求助,C#查询oracle数据库返回行数的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10197008.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存