C#中的sqlite数据库连接类

时间:2013-07-19 06:40:07

标签: c# sqlite

我是C#的新手,我正在尝试创建一个sqlite数据库连接类。我通过点击我的项目名称>创建了一个新的类文件。添加>类。我在这个文件中有以下代码。

问题是我在SQLiteDataReader

之后的每一行都收到错误
  1. 如果我将鼠标悬停在sqlite_conn上,则表示“...是一个字段,但用作类型”
  2. 如果我将鼠标悬停在SQLiteConnection上,则表示...方法必须具有返回类型
  3. 如果我将鼠标悬停在("Data Source=database.db;Version=3;New=True;Compress=True;")上,则会显示预期类型
  4. `

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Finisar.SQLite;
    
    namespace learningCsharp
    {
    class database
    {
        // We use these three SQLite objects:
        SQLiteConnection sqlite_conn;
        SQLiteCommand sqlite_cmd;
        SQLiteDataReader sqlite_datareader;
    
        // Getting error in every lines after this 
    
        // create a new database connection:
        sqlite_conn = new SQLiteConnection("Data Source=database.db;Version=3;New=True;Compress=True;");
    
       //open the connection:
         sqlite_conn.Open();
    
       // create a new SQL command:
         sqlite_cmd = sqlite_conn.CreateCommand();
    
    }
    }
    

    你能帮我解决这个问题并创建一个有效的sqlite数据库连接类吗?

4 个答案:

答案 0 :(得分:1)

您需要将行错误地放在类构造函数或方法中。

public class database
{
    // We use these three SQLite objects:
    public SQLiteConnection sqlite_conn;
    public SQLiteCommand sqlite_cmd;
    public SQLiteDataReader sqlite_datareader;

    public database()
    {
         sqlite_conn = new SQLiteConnection("Data Source=database.db;Version=3;New=True;Compress=True;");
         sqlite_conn.Open();
         sqlite_cmd = sqlite_conn.CreateCommand();
     }   

}

答案 1 :(得分:0)

您无法在不同的行中初始化字段(方法之外)。将您的班级更改为:

namespace learningCsharp
{
    class Database
    {
        // We use these three SQLite objects:
        SQLiteConnection sqlite_conn;
        SQLiteCommand sqlite_cmd;
        SQLiteDataReader sqlite_datareader;

        //constructor called when initializing new instance
        public Database()
        {
            sqlite_conn = new SQLiteConnection("Data Source=database.db;Version=3;New=True;Compress=True;");
            sqlite_conn.Open();
            sqlite_cmd = sqlite_conn.CreateCommand();
        }
    }
}

答案 2 :(得分:0)

您需要通过

之类的方式实例化SQLiteDataReader类
SQLiteDataReader reader = sqlite_cmd.ExecuteReader();

请参阅http://zetcode.com/db/sqlitecsharp/read/

答案 3 :(得分:0)

您永远不会创建方法或构造函数。

class database
{
    // Here you define properties: OK
    SQLiteConnection sqlite_conn;
    SQLiteCommand sqlite_cmd;
    SQLiteDataReader sqlite_datareader;


    // Then, you do stuff to them: NOT OK
    sqlite_conn = new SQLiteConnection("Data Source=database.db;Version=3;New=True;Compress=True;");

   //open the connection:
     sqlite_conn.Open();

   // create a new SQL command:
     sqlite_cmd = sqlite_conn.CreateCommand();

}
}

你可以通过在方法中添加“做什么”代码来修复它:

class database
{
    // Here you define properties: OK
    SQLiteConnection sqlite_conn;
    SQLiteCommand sqlite_cmd;
    SQLiteDataReader sqlite_datareader;

    void public DoStuff() {
       // Then, you do stuff to them: NOT OK
       sqlite_conn = new SQLiteConnection("Data Source=database.db;Version=3;New=True;Compress=True;");

      //open the connection:
      sqlite_conn.Open();

      // create a new SQL command:
      sqlite_cmd = sqlite_conn.CreateCommand();

    }
  }
}

然后,您可以像这样实例化和运行:

database db = new database();
db.DoStuff();

这是所有基本的C#,OO编程。在进入SQLite数据库编程之前,我强烈建议您先学习C#。