C# 从ASP.NET插入到MS Access

C# 从ASP.NET插入到MS Access,c#,asp.net,sql-server,visual-studio,ms-access,C#,Asp.net,Sql Server,Visual Studio,Ms Access,我们正在尝试建立一个仅用于内部网的服务台票务系统。决定使用VisualStudio2008Express使用ASP.NET(C#)(如果需要的话,请认为我们有一个完整的浮动版本)。没什么特别的,两页抓取NTLM信息、系统信息并将其与问题一起存储在数据库中。我们的目标是让它变得简单,但管理员希望我使用MS Access,而不是使用我们的SQL Server 2000后端。我的GridView和连接运行顺利。可以拉选择查询,直到我的心是满意的。但是,在submit按钮上的文本框中将两个变量绑定到IN

我们正在尝试建立一个仅用于内部网的服务台票务系统。决定使用VisualStudio2008Express使用ASP.NET(C#)(如果需要的话,请认为我们有一个完整的浮动版本)。没什么特别的,两页抓取NTLM信息、系统信息并将其与问题一起存储在数据库中。我们的目标是让它变得简单,但管理员希望我使用MS Access,而不是使用我们的SQL Server 2000后端。我的GridView和连接运行顺利。可以拉选择查询,直到我的心是满意的。但是,在submit按钮上的文本框中将两个变量绑定到INSERT语句中。。我甚至不知道从哪里开始MS Access。每个internet示例都在VB.NET plus中,似乎都是Visual Studio在几次单击后为我完成的手工编码

MS访问对于我们想要做的一切来说是否太难了?如果没有,我们从哪里开始简单地将这些数据提交到表中

编辑:经过一系列的游戏,我们有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是一个进程中的数据库,因此不适合用户创建或更新记录的网站


但就创建插入查询而言,访问并不比其他任何事情都困难。如果无法为Access创建插入查询,则SQL Server可能也会出现问题。

不要为Access操心。使用SQLServerExpress。它还有一个管理工具,看起来像是成熟的SQL Server管理工具。

我也建议使用SQL Server,但考虑到您的问题: 为Access编写插入查询有什么问题? 您应该使用System.Data.OleDb命名空间中的类:

  • OLEDB连接
  • OLEDB命令
Quick'n脏代码(未编译):


不过,OleDb类有一些警告(例如,按照参数在SQL语句中出现的顺序将参数添加到集合中)。

Access有它的位置,通常可以做比大多数人认为的更多的事情,但是您确实希望使用SQL Server的多种形式之一(例如SQL Server Express)或者为这样的web应用提供另一个合适的“服务器”数据库。

为什么管理员不想使用免费的SQL server Express Edition?我们有SQL server 2000 Enterprise,在MS Dynamics上投入了大量资金。这一切都是关于不改变现在正在工作的东西,没有备用机器。这并不理想,但是如果你有问题的话,你可以在web服务器上运行SQL Express。你的帖子实际上很混乱,因为你根本没有使用Access,只是使用Jet数据库作为数据存储。“管理员希望我使用MS Access”-为什么这么混乱?我打赌你也使用MS Access管理你的Jet数据存储。哦,从技术上讲,你的意思是“DBMS”而不是“数据库”,尽管我没有被你的方言所迷惑。问题是我通常会修复帧中继问题!谢谢你的例子。
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();