using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SQLite;namespace aaa
{
    public partial class Form2 : Form
    {        SQLiteConnection conn;
        SQLiteCommand cmd;        public Form2()
        {
            InitializeComponent();
        }        private void Form2_Load(object sender, EventArgs e)
        {
            label2.Text = "fsdf";
            conn = new SQLiteConnection("Data Source=PDA.db");
            conn.Open();
            cmd = conn.CreateCommand();
            cmd.CommandText = "SELECT *  FROM aaa";
            SQLiteDataReader reader = cmd.ExecuteReader();
            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    label2.Text ="ID: " + reader.GetInt16(0);
                }
            }
        }    }
}
代码如上,工程中也引入了System.Data.SQLite文件,每次运行到cmd.ExecuteReader();的时候,提示没有这个表。数据库里有这个表明为aaa,请问C#倒入System.Data.SQLite文件后,在数据库方面还需要做什么设置吗?高手能不能给写个C#操作sqlite的例子(就要查询就可以),先谢谢了

解决方案 »

  1.   

     private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                    string datasource = @"e:\test.db";
                    if (!File.Exists(datasource))
                    {
                        System.Data.SQLite.SQLiteConnection.CreateFile(datasource);
                    }
                    //连接数据库
                    System.Data.SQLite.SQLiteConnection conn
                        = new System.Data.SQLite.SQLiteConnection();                System.Data.SQLite.SQLiteConnectionStringBuilder connstr 
                        = new System.Data.SQLite.SQLiteConnectionStringBuilder();
                    connstr.DataSource = datasource;
                    connstr.Password = "admin";//设置密码,SQLite ADO.NET实现了数据库密码保护
                    conn.ConnectionString = connstr.ToString();
                    conn.Open();
                    //创建表
                    System.Data.SQLite.SQLiteCommand cmd = new System.Data.SQLite.SQLiteCommand();
                    string sql = "CREATE TABLE test(username varchar(20),password varchar(20))";
                    cmd.CommandText = sql;
                    cmd.Connection = conn;
                    cmd.ExecuteNonQuery();
                    //插入数据
                    sql = "INSERT INTO test VALUES('ekinglong','mypassword')";
                    cmd.CommandText = sql;
                    cmd.ExecuteNonQuery();
                    //取出数据
                    sql = "SELECT * FROM test";
                    cmd.CommandText = sql;
                    System.Data.SQLite.SQLiteDataReader reader = cmd.ExecuteReader();
                    StringBuilder sb = new StringBuilder();
                    while (reader.Read())
                    {
                        sb.Append("username:").Append(reader.GetString(0)).Append("\n")
                        .Append("password:").Append(reader.GetString(1));
                    }
                    MessageBox.Show(sb.ToString());
                                }
                catch (Exception ex)
                {
                    
                    throw;
                }        }
      

  2.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SQLite;
    using System.IO;namespace SQLiteManage
    {
        public partial class FrmMain : Form
        {
            public FrmMain()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                    string datasource = @"e:\test.db";
                    if (!File.Exists(datasource))
                    {
                        System.Data.SQLite.SQLiteConnection.CreateFile(datasource);
                    }
                    //连接数据库
                    System.Data.SQLite.SQLiteConnection conn
                        = new System.Data.SQLite.SQLiteConnection();                System.Data.SQLite.SQLiteConnectionStringBuilder connstr 
                        = new System.Data.SQLite.SQLiteConnectionStringBuilder();
                    connstr.DataSource = datasource;
                    connstr.Password = "admin";//设置密码,SQLite ADO.NET实现了数据库密码保护
                    conn.ConnectionString = connstr.ToString();
                    conn.Open();
                    //创建表
                    System.Data.SQLite.SQLiteCommand cmd = new System.Data.SQLite.SQLiteCommand();
                    string sql = "CREATE TABLE test(username varchar(20),password varchar(20))";
                    cmd.CommandText = sql;
                    cmd.Connection = conn;
                    cmd.ExecuteNonQuery();
                    //插入数据
                    sql = "INSERT INTO test VALUES('ekinglong','mypassword')";
                    cmd.CommandText = sql;
                    cmd.ExecuteNonQuery();
                    //取出数据
                    sql = "SELECT * FROM test";
                    cmd.CommandText = sql;
                    System.Data.SQLite.SQLiteDataReader reader = cmd.ExecuteReader();
                    StringBuilder sb = new StringBuilder();
                    while (reader.Read())
                    {
                        sb.Append("username:").Append(reader.GetString(0)).Append("\n")
                        .Append("password:").Append(reader.GetString(1));
                    }
                    MessageBox.Show(sb.ToString());              
                }
                catch (Exception ex)
                {
                    
                    throw;
                }
            }
        }
    }
      

  3.   

     sql = "SELECT * FROM test where username='中文名'";
    是读不出来的。
      

  4.   

    如何将comm.ExecuteReader()得到的数据绑定到dataGrid空间上