2013-09-05 3 views
2

winform이 있습니다. SQL Server CE 데이터베이스에 데이터를 저장하고 해당 데이터를 검색하려고합니다.SQL Server CE 데이터베이스에서 데이터를 가져 오는 데 도움이 필요합니다.

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(); 

일부 내 오류가 날 직접 수 : 나는 내 winfom에서 다음을 실행할 때 데이터를 검색 할 수 없습니다입니다

? VS에서 실행할 때 쿼리가 1 줄을 반환합니다. 고맙습니다.

+0

어떤 오류가 발생하고 있습니까? – BWS

답변

1

문제는 줄 번호 while (readData.Read()) 일 수 있다고 생각합니다. 값을 설정하는 코드 행 주위에 {}를 넣고 이것이 도움이되는지 확인하십시오.

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

그게 효과가 !!!! 정말 고맙습니다. 내 멍청한 실수. – pls3399

1

당신은 확실히 당신이 루프 또는 조건 문에만 다음 줄에 괄호를 생략하면 C#에서이

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(); 
} 

을 시도 while 루프

의 중괄호 부족하지 않습니다 블록에 포함되어 있음

관련 문제