c# - 需要帮助从 SQL Server CE 数据库获取数据

标签 c# sql sql-server-ce

我有一个 winform,我正在尝试将数据保存到 SQL Server CE 数据库并检索该数据。

当我在 winfom 中运行以下命令时,我无法检索任何数据:

string lookupValue;

SqlCeConnection connection;
connection = new SqlCeConnection();
connection.ConnectionString = "Data Source= LaZSolutions.sdf";

SqlCeCommand cmd2 = connection.CreateCommand();

if (txtOrderNum.Text != null)
{
   lookupValue = txtOrderNum.Text;
   cmd2.CommandText = "SELECT Customers.FirstName, Customers.LastName, Customers.Address, Customers.City, Customers.State, Customers.Zip, Customers.Phone, Customers.Mobile, Customers.OrderNum, Customers.Comments, Customers.Email, Orders.OrderDate, Orders.OrderNum AS Expr1, Orders.Cost, Orders.Image FROM Customers INNER JOIN Orders ON Customers.OrderNum = Orders.OrderNum WHERE (Orders.OrderNum = '" + lookupValue + "')";
}
else if (txtFName.Text != null && txtLName.Text != null)
{
   cmd2.CommandText = "SELECT Customers.*, Orders.* From Customers INNER JOIN Orders ON Customers.OrderNum = Orders.OrderNum where Customers.Firstname = '" + Convert.ToString(txtFName.Text) + "' and Customers.LastName = '" + Convert.ToString(txtLName.Text) + "'";
}

connection.Open();
cmd2.ExecuteNonQuery();
SqlCeDataReader readData = cmd2.ExecuteReader();

if (readData != null)
{
   while (readData.Read())
      txtFName.Text = readData["FirstName"].ToString();
   txtLName.Text = readData["lastname"].ToString();
   txtAddress.Text = readData["address"].ToString();
   txtCity.Text = readData["city"].ToString();
   txtState.Text = readData["state"].ToString();
   txtZip.Text = readData["zip"].ToString();
   txtHPhone.Text = readData["phone"].ToString();
   txtMPhone.Text = readData["mobile"].ToString();
   txtComments.Text = readData["Comments"].ToString();
   txtEmail.Text = readData["email"].ToString();
   txtOrderNum.Text = readData["OrderNum"].ToString();
   txtOrderdate.Text = readData["orderdate"].ToString();
   lblPrice.Text = readData["Cost"].ToString();
}
else
{
   MessageBox.Show("No Results Found");
}
connection.Close();

有人可以指出我的错误吗?当我在 VS 中运行查询时,该查询返回 1 行。谢谢。

最佳答案

我认为问题可能出在 while (readData.Read()) 行 上。尝试将 { } 放在您要设置值的代码行周围,看看这是否有帮助。

    while (readData.Read())
    {
        txtFName.Text = readData["FirstName"].ToString();
        txtLName.Text = readData["lastname"].ToString();
        ...
        lblPrice.Text = readData["Cost"].ToString();
    }

关于c# - 需要帮助从 SQL Server CE 数据库获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18643995/

相关文章:

c# - 带有 SQL Compact Edition 数据库错误 : 26 的 Visual Studio 2008 (C#)

c# - 从动态 json 结果中获取列表

c# - 依赖注入(inject)。为 ASP.NET vNext 做准备

mysql - 即使字段为空,如何运行 SQL 查询来返回

sql - 基于以前的值更新 SQL SERVER 2005

visual-studio-2010 - 从哪里获得 SQL Server Compact Edition 4?

c# - 构造函数和抛出异常

c# - 有没有办法通过 C# 中的 Type.InvokeMember 或消息调用窗体或类的私有(private)函数?

sql - 是否可以在单个语句中修剪列中的所有值?

c# - .NET 应用程序不想运行