2009-05-07 29 views
7

Xin chào mọi người Tôi đã đấu tranh để sử dụng sqlite trong ứng dụng C# 2.0 của tôi và cuối cùng tôi đã quyết định loại bỏ các giả định và đặt câu hỏi thực sự cơ bản.sqlite3.dll và system.data.sqlite.dll

Khi tôi tạo cơ sở dữ liệu nói iagency với người dùng bảng, từ công cụ bên ngoài như cắm firefox và công cụ sqladmin khác tôi không thể truy vấn từ sqlicommand bên trong vs2005, nó hiển thị System.Data.SQLite.SQLiteException:Sqlite Error no such table users, hãy yên tâm rằng tôi đã tham chiếu đến system.data.sqlite được cài đặt với SQLite-1.0.61.0-setup

Khi tôi làm ngược lại như tạo cơ sở dữ liệu và bảng từ trình khám phá máy chủ VS và công cụ gui cơ sở dữ liệu VS, bạn không thể truy vấn các công cụ khác bảng được tạo ra thông qua truy vấn từ VS sử dụng stringbuilder ví dụ như tạo bảng bla bla. nó có thể được hiển thị trong một DataGrid nhưng không có công cụ nào có thể nhìn thấy và hiển thị bảng đó.

TÔI CẦN LÀM GÌ CHÍNH XÁC THỰC HIỆN SQLite TRONG ỨNG DỤNG CỦA TÔI?

Tôi đã cố gắng thêm sqlite3.dll của sqlitedll-3_6_14.zip tải về từ trang web sqlite dưới phần tiền biên dịch mã nhị phân cho các cửa sổ như tài liệu tham khảo để ứng dụng của tôi nhưng nó không thành công với make sure it's accessible an it's a valid assembly or com component.

+0

Đăng tốt hơn một số mã mẫu. –

Trả lời

11

Tôi đã tải xuống bản cài đặt này SQLite-1.0.61.0-setup.exe Sau đó tôi đã viết điều này để truy cập vào mục yêu thích firefox sqlite db.

using System.Data.SQLite; // Dont forget to add this to your project references 
          // If the installation worked you should find it under 
          // the .Net tab of the "Add Reference"-dialog 

namespace sqlite_test 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var path_to_db = @"C:\places.sqlite"; // copied here to avoid long path 
      SQLiteConnection sqlite_connection = new SQLiteConnection("Data Source=" + path_to_db + ";Version=3;New=True;Compress=True;"); 

      SQLiteCommand sqlite_command = sqlite_connection.CreateCommand(); 

      sqlite_connection.Open(); 

      sqlite_command.CommandText = "select * from moz_places"; 

      SQLiteDataReader sqlite_datareader = sqlite_command.ExecuteReader(); 

      while (sqlite_datareader.Read()) 
      { 
       // Prints out the url field from the table: 
       System.Console.WriteLine(sqlite_datareader["url"]); 
      } 
     } 
    } 
} 
+2

Nếu bạn không tìm thấy cụm từ 'System.Data.SQLite' trong ** Thêm tham chiếu .../.Net ** (Tôi không.) Thêm nó từ ** Duyệt **. Bạn sẽ tìm thấy 2 DLL trong 'C: \ Program Files \ System.Data.SQLite \ bin' (hoặc' C: \ Program Files (x86) \ System.Data.SQLite \ bin' nếu bạn đang sử dụng phiên bản x86 trên một cửa sổ 64 bit cài đặt.) – ocodo

3

Thử mở cơ sở dữ liệu trong công cụ SQLite dòng lệnh (từ SQLite.org) và kiểm tra lược đồ.

Bạn có thể kiểm tra sơ đồ theo cách này:

.schema 

này sẽ đổ ra tất cả các SQL cần thiết để tạo ra các bảng trong cơ sở dữ liệu. Hãy chắc chắn rằng bảng là có, với tên bạn giả sử nó cần phải có.

Bạn không cần tệp .dll từ SQLite.org, tất cả những gì bạn cần là các hội đồng từ System.Data.SQLite.

+0

cảm ơn câu trả lời.Đây là một câu hỏi ngu ngốc khác. Tôi nên trích xuất ứng dụng exe sang đâu? Cos tôi đã thử chọn cơ sở dữ liệu bằng lệnh .database này để tìm cơ sở dữ liệu nhưng không có gì.sau khi tôi sao chép exe bên trong thư mục ứng dụng C# của tôi và cố gắng chọn cơ sở dữ liệu với lệnh này "sqlite3 iagency" .still nothing to show –

+0

i giải quyết vấn đề được nêu ở đây.xem nhận xét tôi đã tạo cho R Ubben.hãy sử dụng sqlite3 iagency.db tôi quên extension.i'm không nhận được rất tốt những gì bạn có nghĩa là bởi "bạn có thể kiểm tra các lược đồ theo cách này" từ cmd.exe tôi gõ sqlite3 iagency.db để chọn và sau khi tôi gõ .schema hoặc nó nên được theo sau bởi tên bảng như .schema users.thanks man –

0

Bạn có thể thử thêm vị trí của assembly và db vào biến môi trường Path. Việc lắp ráp SQLite chứa cả. Net và mã gốc được hợp nhất với nhau, vì vậy bạn không cần phải có dll C. (công cụ sáp nhập mà họ bao gồm để thực hiện điều này khá thú vị)

+0

tôi đã thêm đường dẫn sqlite.exe vào môi trường variable.did một số thử nghiệm trên ổ đĩa của tôi d bằng cách sử dụng cửa sổ cmd.exe và tôi có thể truy vấn bảng đó tốt. bây giờ tôi thay đổi thư mục nơi dự án của tôi và cơ sở dữ liệu được tạo trước đó. lệnh sqlite3 iagency và .schema không tạo ra bất kỳ đầu ra nào. Tôi đã thử người dùng .scheman? nhưng nothing.Am tôi thiếu bất cứ điều gì? –

2

Liên kết với tôi - this đã giúp rất nhiều lúc bắt đầu.

Khó khăn hơn để có được công việc âm thầm, để làm cho cơ sở dữ liệu có thể truy cập thông qua ứng dụng web -
nhưng đó là một câu chuyện khác.

0

Tôi cũng đã thử thêm vị trí vào Biến môi trường đường dẫn nhưng không thành công.

Cuối cùng tôi đã sao chép System.Data.SQLite.dllSystem.Data.SQLite.lib vào thư mục bin của ứng dụng Web nơi các hội đồng khác được đặt và ứng dụng hoạt động.