【发布时间】:2009-01-19 22:29:33
【问题描述】:
我们正在尝试为 Intranet 构建帮助台票务系统。决定使用 Visual Studio 2008 Express 的 ASP .NET (C#)(认为如果需要,我们有一个完整的版本)。没什么特别的,几页抓取 NTLM 信息、系统信息并将其与问题一起存储在数据库中。目标是让它变得简单,但是管理员不希望我使用我们的 SQL Server 2000 后端,而是希望我使用 MS Access。我的 GridView 和连接运行顺畅。可以拉选择查询,直到我心满意足。但是,将几个变量与提交按钮上的文本框绑定到一个 INSERT 语句中。我什至不知道从哪里开始使用 MS Access。每个 Internet 示例都在 VB .NET 中,而且似乎是 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();
【问题讨论】:
-
为什么管理员不想使用免费的 SQL Server Express Edition?
-
我们拥有 SQL Server 2000 Enterprise,并在 MS Dynamics 方面进行了大量投资。这一切都是为了不改变现在工作的东西,也没有备用机器。
-
这并不理想,但如果获取另一台机器有问题,您可以在 Web 服务器上运行 SQL Express。
-
您的帖子实际上很混乱,因为您根本没有使用 Access,只是使用 Jet 数据库作为数据存储。
-
“管理员希望我使用 MS Access” - 为什么会让人困惑?我敢打赌,您也使用 MS Access 来管理您的 Jet 数据存储。哦,从技术上讲,你的意思是“DBMS”而不是“数据库”,尽管我没有被你使用的白话弄糊涂。
标签: c# asp.net sql-server visual-studio ms-access