var r=db.execute("query")
嗨!我想访问从此查询获得的列(和行)(如q [0] .column1)。但是当我将它存储在var中时,它是不可能的。
我可以使用哪种数据类型或技术?
执行此操作时,单行输出和多行输出之间是否存在差异?
我正在使用webmatrix中的sql server CE db(sdf文件)。
答案 0 :(得分:1)
我认为db是来自WebMatrix.Data命名空间的Database type的对象,使用类似
的命令打开var db = Database.Open("yourDb");
如果这是正确的,则Execute方法(使用大写E)不返回查询,而是返回一个整数,该整数是受执行的SQL语句影响的记录数(INSERT,UPDATE或DELETE)。
返回查询结果的方法有三种:Query,QuerySingle和QueryValue。
Query将行列表返回为IEnumerable of Objects。以下示例查询Northwind表并显示结果:
@{
var db = Database.Open("Northwind");
var data = db.Query("SELECT ProductID, ProductName FROM Products WHERE SupplierID = 1");
foreach (var row in data){
<p>@row.ProductID - @row.ProductName</p>
}
}
QuerySingle将单行返回为Object,例如:
@{
var db = Database.Open("Northwind");
var data = db.QuerySingle("SELECT ProductID, ProductName FROM Products WHERE ProductID = 10");
<p>@data.ProductID - @data.ProductName</p>
}
QueryValue返回单个值为Object:
@{
var db = Database.Open("Northwind");
var data = db.QueryValue("SELECT UnitPrice FROM Products WHERE ProductID = 14");
<p>The price of product n. 14 is: @data</p>
}
答案 1 :(得分:0)
您的数据库将返回表格或数据集。为了访问每个单元格中的数据,您需要遍历DataTable或DataSet行并指定每个列索引或名称。