2011-11-19 17 views
1

我想在我的Asp.Net中使用SqLite。我有下面的代碼在web.config中的ConnectionString在Asp.Net中使用SqLite

<add name="ConnectionStringName" connectionString="data source=MembersLastLogin3.s3db" providerName="System.Data.SQLite" /> 

這裏是運行查詢

public int ExecuteNonQuery(string sql) 
    { 
     try 
     { 
      string con = ConfigurationManager.ConnectionStrings["ConnectionStringName"].ConnectionString; 
      SQLiteConnection cnn = new SQLiteConnection(con); 
      cnn.Open(); 
      SQLiteCommand mycommand = new SQLiteCommand(cnn); 
      mycommand.CommandText = sql; 
      int rowsUpdated = mycommand.ExecuteNonQuery(); 
      cnn.Close(); 
      return rowsUpdated;    
     } 
     catch { throw; } 
    } 
} 

的代碼,這簡單的查詢

sql = "INSERT INTO LastLogin (MemId) VALUES ('" + res + "');"; 
       LocalDb.ExecuteNonQuery(sql); 

,但我得到的錯誤「表LastLogin不存在「

我已經使用了SqLitein .Net,但這是我第一次使用它在Asp.Net中,我確定表格存在,但它似乎可以連接到它,我的問題在哪裏? web.config中的設置是否足夠?有沒有可用的教程?感謝

回答

0

驗證是否桌在你的SQLite存在數據庫使用的getSchema方法:

using (var conn = new SQLiteConnection("Data Source=<PathToDb>\\MembersLastLogin3.s3db")) 
{ 
    DataTable tbl = conn.GetSchema("Tables") 
    // The DataTable will list all the tables in the 
    // db as well as information about each table. 
} 

最可能的原因是你使用的連接字符串沒有指向SQLite數據庫,這就是爲什麼你會看到錯誤表不存在。

作爲關於您發佈的示例代碼的附註,如果您沒有對異常做任何事情,那麼如果異常將被拋回,則不需要嘗試/捕獲異常。

1

我想你的文件數據庫存儲在asp.net網站的App_Data目錄中。

所以只要嘗試改變你的連接字符串:

<add name="ConnectionStringName" connectionString="data source=|DataDirectory|MembersLastLogin3.s3db" providerName="System.Data.SQLite" />