[英]Display Local database c#
I have a probnlem displaying what's in my Database table. 我有一个问题显示数据库表中的内容。 I've followed my class instructions but I've been stuck for 2 days without success!
我已按照课堂指示上课,但被困了2天却没有成功!
Here is what I've done so far; 到目前为止,这是我所做的;
string conStr = @"Data Source=C:\Users\secwp_000\documents\visual studio 2012\Projects\Module5\Module5\Orderdatabase.sdf";
SqlCeConnection con = new SqlCeConnection(conStr);
SqlCeCommand cmd = new SqlCeCommand("SELECT * FROM Order", con);
SqlCeDataAdapter adapt = new SqlCeDataAdapter(cmd);
DataSet ds = new DataSet();
adapt.Fill(ds, "Order");
foreach (DataTable dt in ds.Tables)
{
foreach (DataRow row in dt.Rows)
{
foreach (DataColumn column in dt.Columns)
{
Console.WriteLine(row[column]);
}
}
}
When i run the code i get a error on adapt.Fill(ds, "Order");
当我运行代码时,我在
adapt.Fill(ds, "Order");
上adapt.Fill(ds, "Order");
saying An unhandled exception of type 'System.Data.SqlServerCe.SqlCeException' occurred in System.Data.SqlServerCe.dll
. 说
An unhandled exception of type 'System.Data.SqlServerCe.SqlCeException' occurred in System.Data.SqlServerCe.dll
。 Which I don't really understand. 我不太了解。
EDIT: My DataConnections is; 编辑:我的DataConnections是;
Data Connections Orderdatabase.sdf Tables Order Columns OrderID etc..
Adding output for Nicks solution: 为Nicks解决方案添加输出:
System.Data.SqlServerCe.SqlCeException (0x80004005): There was an error parsing the query. [ Token line number = 1,Token line offset = 21,Token in error = Order ] vid System.Data.SqlServerCe.SqlCeCommand.ProcessResults(Int32 hr) vid System.Data.SqlServerCe.SqlCeCommand.CompileQueryPlan() vid System.Data.SqlServerCe.SqlCeCommand.ExecuteCommand(CommandBehavior behavior, String method, ResultSetOptions options) vid System.Data.SqlServerCe.SqlCeCommand.ExecuteDbDataReader(CommandBehavior behavior) vid System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(Command Behavior behavior) vid System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable [] datatables, Int32 startRecord, Int32 maxRecords, String, srcTable, IDbCommand command, CommandBehavior behavior) vid System.Data.Common.DbDataAdapter.Fill(Dataset dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) vid System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) vid Module5.Program.Main(String[] args) i c:\Users\secwp_000\Documents\Visual Studio 2012\Projects\Module5\Module5\Program.cs:rad 54
EDIT: Here is a picture of what it looks like atm. 编辑:这是一张看起来像atm的图片。 http://oi61.tinypic.com/9pq70l.jpg
http://oi61.tinypic.com/9pq70l.jpg
First of all SELECT * from Order is a huge collection of data, I suggest you try this: 首先,来自Order的SELECT *是大量数据,我建议您尝试以下操作:
SqlConnection con = new SqlCeConnection(conStr);
using(con)
{
SqlCommand cmd = new SqlCeCommand("SELECT OrderID FROM Order", con);
string OrderID = cmd.ExecuteScalar().ToString();
Console.WriteLine(OrderID);
}
And if this is successful then go on to execute using foreach to access all rows and columns using SELECT * FROM ORDER
如果成功,则继续使用foreach执行,以使用
SELECT * FROM ORDER
访问所有行和列
You need to enclose the table name in brackets, as this is a reserved Word: 您需要将表名括在方括号中,因为这是保留字:
SqlCeCommand cmd = new SqlCeCommand("SELECT * FROM [Order]", con);
And using SELECT * is never a good idea 使用SELECT *从来都不是一个好主意
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.