标签: sqlcedatareader

处理SqlCeDataReader是个好主意吗?

在尝试追踪仅在某些情况下发生的空引用异常的原因时,我遇到了以下代码:

SqlCeDataReader IdValsReader = IdValsCMD.ExecuteReader();
if ((IdValsReader.Read()) && (!IdValsReader.IsDBNull(0)))
{
    return string.Format("{0};{1};{2};{3};{4};{5};{6};{7};", 
        IdValsReader.GetValue(DESCRIPTION_INDEX),
        . . .
}
IdValsReader.Close();
Run Code Online (Sandbox Code Playgroud)

...并且想知道我是否应该在IdValsReader.Close()之后添加这一行:

IdValsReader.Dispose();
Run Code Online (Sandbox Code Playgroud)

我这样做了,但似乎没有任何区别; 我应该把它留下来还是把它剥掉?

c# .net-1.0 windows-ce sql-server-ce sqlcedatareader

0
推荐指数
1
解决办法
61
查看次数

为什么此SqlCeCommand ExecuteReader调用失败?

我在Wigley和Wheelwright的"Microsoft .NET Compact Framework"中修改了下面的代码:

SqlCeConnection cn = new SqlCeConnection(@"Data Source=\My Documents\Traffic.sdf");
String sSQL= "SELECT CarID, Reg, Location FROM Cars");
SqlCeCommand cmdSelect = new SqlCeCommand(sSQL, cn);
cmdSelect.CommandType = CommandType.Text;
SqlCeDataReader dtr = cmdSelect.ExecuteReader(CommandBehavior.Default); // It's "cmd." instead of "cmdSelect." in the book, but that doesn't compile
while (dtr.Read())
{
    ListViewItem item = new ListViewItem(dtr.GetInt32(0).ToString());
    item.SubItems.Add(dtr.GetString(1));
    item.SubItems.Add(dtr.GetString(2));
    listViewCars.Items.Add(item);
}
Run Code Online (Sandbox Code Playgroud)

...所以我的代码是这样的:

    private String getDataAsXMLFromTable(String tableName, String siteNum)
    {
        String strXML;
        StringBuilder sbXML = new StringBuilder();

        String lineId;
        String refNum;
        String upcCode;
        String desc; …
Run Code Online (Sandbox Code Playgroud)

compact-framework executereader windows-ce sql-server-ce sqlcedatareader

-4
推荐指数
1
解决办法
533
查看次数