簡體   English   中英

從ASP.NET插入到MS Access

[英]INSERT from ASP.NET to MS Access

我們正在嘗試為Intranet構建幫助台票務系統。 選擇帶有Visual Studio 2008 Express的ASP .NET(C#)(如果需要的話,我們可以提供一個完整的版本)。 沒什么好看的,只有幾頁捕獲NTLM信息,系統信息並將其連同問題一起存儲在數據庫中。 目標是使其變得簡單,但管理員希望我使用MS Access,而不是使用我們的SQL Server 2000后端。 我的GridView和連接運行順利。 可以拉選擇查詢,直到我心滿意足。 但是,將帶有提交按鈕上的文本框的幾個變量綁定到一個INSERT語句中。好吧,我什至不知道從何處開始使用MS Access。 VB .NET plus中的每個Internet示例都似乎是手動編碼,只需單擊幾下,Visual Studio就已經為我完成了。

對於我們想要做的所有事情,MS Access是否太難了? 如果不是,我們從哪里開始簡單地將此數據提交到表中?

編輯:經過一堆的試驗之后,我們有了OleDB。 它不是很漂亮,是的,SQL Server很棒,但是,有時您只需要打球即可。

編輯:尋找實際編碼答案的任何人,就在這里。 同一條船上肯定還有其他人。

    string userIP = Request.UserHostAddress.ToString();
    string userDNS = Request.UserHostName.ToString();
    string duser = Request.ServerVariables["LOGON_USER"];  //NTLM Domain\Username
    string computer = System.Environment.MachineName.ToString(); //Computer Name
    string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\helpdesk.MDB;";

    OleDbConnection conn = new OleDbConnection(connectionString);
    conn.Open();
    OleDbCommand cmd = new OleDbCommand();
    cmd.Connection = conn;
    cmd.CommandText = "INSERT INTO ticketing ([user], [comp], [issue]) VALUES (@duser, @computer, @col3)";
    cmd.Parameters.Add("@duser", OleDbType.VarChar).Value = duser;
    cmd.Parameters.Add("@computer", OleDbType.VarChar).Value = computer;
    cmd.Parameters.Add("@col3", OleDbType.LongVarChar).Value = TextBox1.Text;
    cmd.ExecuteNonQuery();
    conn.Close();

管理員是瘋了。 Access是一個in-process數據庫,因此不適合用戶將在其中創建或更新記錄的網站。

但是就創建INSERT查詢而言,Access並不比其他任何事情都要難。 如果您無法為Access創建INSERT查詢,則SQL Server也可能會遇到問題。

我還建議使用SQL Server,但考慮到您的問題:為Access編寫INSERT查詢是什么問題? 您應該利用在System.Data.OleDb命名空間中找到的類:

  • 的OleDbConnection
  • 的OleDbCommand

Quick'n臟代碼(不進行任何編譯):

OleDbConnection conn = new OleDbConnection (connectionString);

OleDbCommand command = new OleDbCommand();
command.Connection = conn;
command.CommandText= "INSERT INTO myTable (col1, col2) VALUES (@p_col1, @p_col2)";
command.Parameters.Add ("@p_col1", OleDbType.String).Value = textBox1.Text;
...
command.ExecuteNonQUery();

但是,OleDb類有一些警告(例如,按照在SQL語句中出現的順序,將參數添加到集合中)。

不要理會Access。 使用SQL Server Express。 還有一個管理工具,看起來像功能完善的SQL Server管理工具。

Access占有一席之地,通常可以做的事比大多數人認為的要多,但是是的,您想以多種形式之一使用SQL Server(例如SQL Server Express)或網站的另一個適當的“服務器”數據庫這樣的應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM