2013-07-10 29 views
0

我想保存的付出誰的人的聯繫電話一個txt文件,但我得到一個錯誤說有一個錯誤OleDbDataReader錯誤

「OleDbDataReader dbReader = cmd.ExecuteReader()」

說「標準表達式中的數據類型不匹配」。 我認爲它的SELECT語句引起的問題,在獲得[付費]是/否數據類型,什麼是選擇數據

try 
     { 
      string connString = (@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|DB.mdb"); 
      OleDbConnection conn = new OleDbConnection(connString); 
      conn.Open(); 
      OleDbCommand cmd = conn.CreateCommand(); 
      cmd.CommandText = @"SELECT [CellNumber] FROM [Users] WHERE [Paid] = '1'"; 
      OleDbDataReader dbReader = cmd.ExecuteReader(); 

      StreamWriter sw = new StreamWriter("E:/Contacts.txt"); 
      while (dbReader.Read()) 
      { 
       sw.WriteLine(cmd.ExecuteScalar().ToString()); 
      } 
      sw.Close(); 
      dbReader.Close(); 
      conn.Close(); 

     } 
     catch (OleDbException abc) 
     { 
      errorLabel.Text = abc.ToString(); 
     } 

回答

0

[Paid]列的正確方法是一種非字符串類型,所以嘗試刪除單引號:

cmd.CommandText = @"SELECT [CellNumber] FROM [Users] WHERE [Paid] = 1"; 

像往常一樣,使用的參數在適當情況下。