| 分類:[C#]
2011/01/12(Wed) 11:04:07 編集(投稿者)
すみません。ミスしました。
Windows XP Visual Studio 2008 C#で開発しています。
C#でSQLiteを接続し、 DBから読み出したいと思っています。
以下コーディング private void DB_Sqlite(string no) { /*データベースに接続*/ SQLiteConnection connect = new SQLiteConnection("Data Source=Test.db"); if ((connect == null)) { MessageBox.Show("データベースの接続に失敗しました。"); return; } // データベース接続を開く connect.Open(); try { string mySelectQuery = "SELECT * FROM Testtable where No '" + no + "'"; SQLiteCommand command = new SQLiteCommand(mySelectQuery, connect);
if ((command = connect.CreateCommand()) == null) { MessageBox.Show("SQLの実行ができません。"); } using (SQLiteDataReader sdr = command.ExecuteReader()) ※←ここ { List<string[]> tuples = new List<string[]>(); for (int i = 0; sdr.Read(); i++) { string[] column = new string[sdr.FieldCount]; for (int j = 0; j < sdr.FieldCount; j++) { column[j] = sdr[j].ToString(); } tuples.Add(column); } }
/*データベースの接続を閉じる*/ connect.Close();
/*リリースの開放*/ connect.Dispose(); } catch (Exception e) { MessageBox.Show(e.ToString()); } /*データベースの接続を閉じる*/ connect.Close();
Console.Read(); }
※の部分で以下のエラーが出てしまいます。 正確にはTry{}catch{}のcatchのMessageBoxで出力されます。 原因はなにかわかりますでしょうか?
以下エラー System.ArgumentNullException: 値をNullにすることはできません。 パラメータ名:s 場所 System.Text.UTF8Encoding.GetByteCount(String chars) 場所 System.Data.SQLite.SQLiteConvert.ToUTF8(String source Text) 場所 System.Data.SQLite.SQLite3.Prepare(SQLiteConnection cnn,String strSql, SQLiteStatement previous,UInt32 timeoutMS,String& strRemain) 場所 System.Data.SQLite.SQLiteCommand.BuildNextCommand() 場所 System.Data.SQLite.SQLiteCommand.GetStatement(Int32 index) 場所 System.Data.SQLite.SQLiteDataReader.NextResult() 場所 System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd,CommandBehavior behave) 場所 System.Data.SQLite.SQLiteCommand.ExcuteReader(CommandBehavior behavior) 場所 System.Data.SQLite.SQLiteCommand.ExcuteReader() 場所 WindowsFormsApplication1.Main.DB_Sqlite(String no)場所 C:Documents and Setting\A\myDocuments\Visual Studio 2008\Projects\WindowsFormsApplication1\Form1.cs:行 140 |