用asp.net如何访问access数据库,我这里做了个插入测试,但是插不进去?

gsoft 2006-10-12 05:36:27
<HTML>
<HEAD>
<title></title>
<% @ Page Language="C#" %>
<% @ Import Namespace="System.Data" %>
<% @ Import Namespace="System.Data.SqlClient" %>
<SCRIPT language="C#" Runat="Server">
public string myConnstring="Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:E:/Inetpub/wwwroot/WebApplication2/test.mdb;";
SqlConnection MyConnection;
public void Page_Load(Object src,EventArgs e)
{
//用户提交数据
}
public void submit_Click(Object src,EventArgs e)
{
string username1 = Request.Form["username"];
string address1 = Request.Form["address"];
string school1 = Request.Form["shool"];
string strInsert="insert into aspcn(username,address,school) values('"+username1+"','"+address1+"','"+school1+"')";
//开始联结
try
{
MyConnection = new SqlConnection(myConnstring);
SqlCommand MyCommand = new SqlCommand(strInsert,MyConnection);
MyConnection.Open();
MyCommand.ExecuteNonQuery();
MyConnection.Close();
Info.Text="数据已经保存";
}
catch(Exception ee)
{
Info.Text="发生错误:"+ee.Message;
}
}
</SCRIPT>
</HEAD>
<body>
<form runat="server">
<asp:label id="Info" Runat="server"></asp:label>
<asp:TextBox ID="username" Runat="server"></asp:TextBox>
<asp:TextBox ID="address" Runat="server"></asp:TextBox>
<asp:TextBox ID="school" Runat="server"></asp:TextBox>
<asp:button id="button1" text="button1" Runat="server" type="submit"></asp:button>
</form>
</body>
</HTML>

请大家指点
...全文
298 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
gsoft 2006-10-13
  • 打赏
  • 举报
回复
调成功了,谢谢大家,完整代码如下:

<HTML>
<HEAD>
<title></title>
<% @ Page Language="C#" %>
<% @ Import Namespace="System.Data" %>
<% @ Import Namespace="System.Data.OleDb" %>
<SCRIPT language="C#" Runat="Server">

public string myConnstring="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:/Inetpub/wwwroot/WebApplication2/test.mdb;Persist Security Info=False";

OleDbConnection MyConnection;
public void Page_Load(Object src,EventArgs e)
{
//用户提交数据
}
public void submit_Click(Object src,EventArgs e)
{
string username1 = Request.Form["username"];
string address1 = Request.Form["address"];
string school1 = Request.Form["school"];
string strInsert="insert into aspcn(username,address,school) values('"+username1+"','"+address1+"','"+school1+"')";
//开始联结
try
{
MyConnection = new OleDbConnection(myConnstring);
OleDbCommand MyCommand = new OleDbCommand(strInsert,MyConnection);
MyConnection.Open();
MyCommand.ExecuteNonQuery();
MyConnection.Close();
Info.Text="数据已经保存";
}
catch(Exception ee)
{
Info.Text="发生错误:"+ee.Message;
}
}</SCRIPT>
</HEAD>
<body>
<form runat="server" ID="Form1">
<asp:label id="Info" Runat="server"></asp:label>
<asp:TextBox ID="username" Runat="server"></asp:TextBox>
<asp:TextBox ID="address" Runat="server"></asp:TextBox>
<asp:TextBox ID="school" Runat="server"></asp:TextBox>
<asp:button id="button1" text="button" Runat="server" onclick ="submit_Click"></asp:button>
</form>
</body>
</HTML>
zgb_cln 2006-10-13
  • 打赏
  • 举报
回复
楼上正解:,我也碰到过这个问题,数据库连接协议的问题
改成:System.Data.OleDb
PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=数据库绝对路径
gchlihong 2006-10-13
  • 打赏
  • 举报
回复
连接Access要用OLEDB
<HTML>
<HEAD>
<title></title>
<% @ Page Language="C#" %>
<% @ Import Namespace="System.Data" %>
<% @ Import Namespace="System.Data.OleDb" %>
<SCRIPT language="C#" Runat="Server">
public string myConnstring=""PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=test.mdb";
SqlConnection MyConnection;
public void Page_Load(Object src,EventArgs e)
{
//用户提交数据
}
public void submit_Click(Object src,EventArgs e)
{
string username1 = Request.Form["username"];
string address1 = Request.Form["address"];
string school1 = Request.Form["shool"];
string strInsert="insert into aspcn(username,address,school) values('"+username1+"','"+address1+"','"+school1+"')";
//开始联结
try
{
MyConnection = new SqlConnection(myConnstring);
SqlCommand MyCommand = new SqlCommand(strInsert,MyConnection);
MyConnection.Open();
MyCommand.ExecuteNonQuery();
MyConnection.Close();
Info.Text="数据已经保存";
}
catch(Exception ee)
{
Info.Text="发生错误:"+ee.Message;
}
}
</SCRIPT>
</HEAD>
<body>
<form runat="server">
<asp:label id="Info" Runat="server"></asp:label>
<asp:TextBox ID="username" Runat="server"></asp:TextBox>
<asp:TextBox ID="address" Runat="server"></asp:TextBox>
<asp:TextBox ID="school" Runat="server"></asp:TextBox>
<asp:button id="button1" text="button1" Runat="server" type="submit"></asp:button>
</form>
</body>
</HTML>
tete 2006-10-13
  • 打赏
  • 举报
回复
问题有点大~还有建议你代码分离
yz_oracle 2006-10-13
  • 打赏
  • 举报
回复
还有是access数据库,
你还是应该用olddb连接
最好不要用sql
yz_oracle 2006-10-13
  • 打赏
  • 举报
回复
感觉是你的连接字符串有问题
例如:
Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\\Inetpub\\wwwroot\\test\\test.mdb
gsoft 2006-10-13
  • 打赏
  • 举报
回复
原文中用的System.Data.ADO,但是我用它,系统提示如下错误:


编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

编译器错误信息: CS0234: 类型或命名空间名称“ADO”在类或命名空间“System.Data”中不存在(是否缺少程序集引用?)

源错误:



行 4: <% @ Page Language="C#" %>
行 5: <% @ Import Namespace="System.Data" %>
行 6: <% @ Import Namespace="System.Data.ADO" %>
行 7: <SCRIPT language="C#" Runat="Server">
行 8: public string myConnstring=@"Driver={Microsoft Access Driver (*.mdb)}; DBQ=E:\Inetpub\wwwroot\WebApplication2\test.mdb;";


源文件: e:\inetpub\wwwroot\WebApplication2\WebForm4.aspx 行: 6



显示详细的编译器输出:


e:\windows\system32\inetsrv> "e:\windows\microsoft.net\framework\v1.1.4322\csc.exe" /t:library /utf8output /R:"e:\windows\microsoft.net\framework\v1.1.4322\temporary asp.net files\webapplication2\d8ccb5fe\ac9a3301\assembly\dl2\267c2818\90b119a2_70eec601\webapplication2.dll" /R:"e:\windows\assembly\gac\system.enterpriseservices\1.0.5000.0__b03f5f7f11d50a3a\system.enterpriseservices.dll" /R:"e:\windows\microsoft.net\framework\v1.1.4322\mscorlib.dll" /R:"e:\windows\assembly\gac\system\1.0.5000.0__b77a5c561934e089\system.dll" /R:"e:\windows\assembly\gac\system.web\1.0.5000.0__b03f5f7f11d50a3a\system.web.dll" /R:"e:\windows\microsoft.net\framework\v1.1.4322\temporary asp.net files\webapplication2\d8ccb5fe\ac9a3301\iqe0kfk5.dll" /R:"e:\windows\assembly\gac\system.web.services\1.0.5000.0__b03f5f7f11d50a3a\system.web.services.dll" /R:"e:\windows\assembly\gac\system.xml\1.0.5000.0__b77a5c561934e089\system.xml.dll" /R:"e:\windows\assembly\gac\system.drawing\1.0.5000.0__b03f5f7f11d50a3a\system.drawing.dll" /R:"e:\windows\assembly\gac\system.web.mobile\1.0.5000.0__b03f5f7f11d50a3a\system.web.mobile.dll" /R:"e:\windows\assembly\gac\system.data\1.0.5000.0__b77a5c561934e089\system.data.dll" /out:"E:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\webapplication2\d8ccb5fe\ac9a3301\2ro4tjhq.dll" /D:DEBUG /debug+ /optimize- /warnaserror /w:1 "E:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\webapplication2\d8ccb5fe\ac9a3301\2ro4tjhq.0.cs"


Microsoft (R) Visual C# .NET 编译器版本 7.10.3052.4
用于 Microsoft (R) .NET Framework 版本 1.1.4322
版权所有 (C) Microsoft Corporation 2001-2002。保留所有权利。

e:\inetpub\wwwroot\WebApplication2\WebForm4.aspx(6,23): error CS0234: 类型或命名空间名称“ADO”在类或命名空间“System.Data”中不存在(是否缺少程序集引用?)
e:\inetpub\wwwroot\WebApplication2\WebForm4.aspx(11,1): error CS0246: 找不到类型或命名空间名称“SqlConnection”(是否缺少 using 指令或程序集引用?)





显示完整的编译源:
gsoft 2006-10-13
  • 打赏
  • 举报
回复
权限我已经改过了,仍提示“发生错误:不支持关键字: “driver”。”,是什么地方用错了吗,比如库之类,请大家参考,帮助
gsoft 2006-10-13
  • 打赏
  • 举报
回复
这是原文,看来作者是测试过的,为什么就不好用呢?
------------------------------------------------

亲密接触ASP.Net(9)

作者: http://www.aspcn.com 飞刀

我们继续前面的内容,呵呵,这次主要是讲DataSet的强大功能啦:)。上次吹了大家的泡泡(说话不算数的意思,湖南人都能听懂吧:)),这次一定不能再食言了:)

在一个DataSet中储存多个数据表

我们在ASP中很多人习惯于使用RecordSet对象来操作数据库,但是RecordSet有一个的缺点就是一个RecordSet只能储存一个数据表,当我们需要操作多个表时,不得不在多个RecordSet中来回操作,虽然这些在使用习惯后也没有什么,但是对一个新手来说,这也是一个很麻烦人的事情。光是那些变量名就可以搞浑你,现在好了,在ASP.Net中,只需要一个DataSet就可以搞定一切。大大的方便了我们的程序。我们还是老样子,先看一段程序,再来细细讲解。

<% @ Page Language="C#" %>
<% @ Import Namespace="System.Data" %>
<% @ Import Namespace="System.Data.ADO" %>
<Script Language="C#" Runat="Server">
public void Page_Load(Object src,EventArgs e)
{
//联结语句
string MyConnString = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:/test/test.mdb;";
string strComm1 = "select * from UserList";
string strComm2 = "select * from BookList";

//打开一个联结
ADOConnection MyConnection = new ADOConnection(MyConnString);

//打开两个DataSetCommand
ADODataSetCommand MyComm1 = new ADODataSetCommand(strComm1,MyConnection);
ADODataSetCommand MyComm2 = new ADODataSetCommand(strComm2,MyConnection);

DataSet MyDataSet = new DataSet();

//把UserList,BookList表存入DataSet
MyComm1.FillDataSet(MyDataSet,"UserList");
MyComm2.FillDataSet(MyDataSet,"BookList");

DataGrid1.DataSource = MyDataSet.Tables["UserList"].DefaultView;
DataGrid2.DataSource = MyDataSet.Tables["BookList"].DefaultView;

DataGrid1.DataBind();
DataGrid2.DataBind();
}
</script>
<html>
<head>
<title></title>
</head>
<body>
<table>
<tr>
<td>
<ASP:DataGrid id="DataGrid1" runat="server"
BorderColor="black"
BorderWidth="1"
GridLines="Both"
CellPadding="3"
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
AlternatingItemStyle-BackColor="#eeeeee"
/>
</td>
<td>
<ASP:DataGrid id="DataGrid2" runat="server"
BorderColor="black"
BorderWidth="1"
GridLines="Both"
CellPadding="3"
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
AlternatingItemStyle-BackColor="#eeeeee"
/>
</td>
</tr>
</table>
</body>
</html>

在上面的例子中,我们打开了一个名为test.mdb的Access数据库,然后把他其中的两个表"UserList"和"BookList"使用两个DataGrid控件显示出来。显示的图片如下:


图9-1

我们现在来分析一下代码:

string MyConnString = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:/test/test.mdb;";
string strComm1 = "select * from UserList";
string strComm2 = "select * from BookList";

ADOConnection MyConnection = new ADOConnection(MyConnString);

ADODataSetCommand MyComm1 = new ADODataSetCommand(strComm1,MyConnection);
ADODataSetCommand MyComm2 = new ADODataSetCommand(strComm2,MyConnection);

这些都只是在作一些准备工作,打开一个联结,并且打开两个DataSetCommand取得两个表的数据。

DataSet MyDataSet = new DataSet();

这是我们程序的关键之地,这里打开了我们要操作的DataSet对象。下面我们就需要将数据表的内容填入DataSet了。

MyComm1.FillDataSet(MyDataSet,"UserList");
MyComm2.FillDataSet(MyDataSet,"BookList");

这里是我们今天的主要内容。前面的几章曾经说过,在一个DataSet中可以包含多种数据,这里我们是往这个名为MyDataSet的DataSet中存放了两个数据库表,其实只要愿意,我们还可以在里面插入XML数据,而且他们是不会出现冲突的。大家可以放心使用,呵呵。

再下面的代码,就是把MyDataSet的数据传送给DataGrid控件显示。这里就不多说了。

这里我们只是简单的说了一下DataSet能存放多个数据表的功能,大家看看好像没有什么特别的。这里看起来确实好像没有什么特别的功能,但是如果配上DataSet中的修改、添加、删除功能,我们操作数据库就变得很简单。我们可以先将数据库读入DataSet,然后在DataSet中修改数据,如果改得觉得不满意,我们还可以使用RejectChanges方法全面恢复,最后一并交给去数据库去更新。

下一节,我们再来讲解,如何使用DataSet来添加,修改,删除数据。
yz_oracle 2006-10-13
  • 打赏
  • 举报
回复
我前几天刚碰到类似的问题
写ACCESS数据库写不进去
我的情况是不是程序问题
是NTFS文件系统权限问题
打开你程序的文件夹属性->安全项
把every用户的权限放开(完全控制)
然后把你access文件的权限放开(完全控制)
应该就可以了.
gsoft 2006-10-13
  • 打赏
  • 举报
回复
我按照swife改了一下,还是一样错误,提示: 发生错误:不支持关键字: “driver”。
gsoft 2006-10-13
  • 打赏
  • 举报
回复
大家帮忙,谢谢啦
swife 2006-10-13
  • 打赏
  • 举报
回复
string myConnstring=@"Driver={Microsoft Access Driver (*.mdb)}; DBQ=E:\Inetpub\wwwroot\WebApplication2\test.mdb;"
gsoft 2006-10-13
  • 打赏
  • 举报
回复
提示: 发生错误:不支持关键字: “driver”。

看来是string myConnstring="Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:E:/Inetpub/wwwroot/WebApplication2/test.mdb;";
这句话有错误,请问大家应该怎么写这个串
ideal7977 2006-10-12
  • 打赏
  • 举报
回复
把异常信息贴出来分析,有可能是你的文件读写权限不足,设置everyone用户
lclc88com 2006-10-12
  • 打赏
  • 举报
回复
多注意一下SQL语句.access的确很BT..可能两个页面的语句有两种写法!!郁闷死
你试着用[]
或不用''了直接用""等等...能试的都试了.
david_dbo 2006-10-12
  • 打赏
  • 举报
回复
senhanxiao(枫)说的也是经常存在的
david_dbo 2006-10-12
  • 打赏
  • 举报
回复
string strInsert="insert into aspcn(username,address,school) values('"+username1+"','"+address1+"','"+school1+"')";
会不会是你联合的字符串里面存在 ' 这个符号??
senhanxiao 2006-10-12
  • 打赏
  • 举报
回复
应该是数据库的权限问题
对任何 Web 站点而言,最重要的要求就是能够准确而安全地发送和存储信息。这种信息可以是任何形式,包括信贷公司提供的信用卡资料到市场信息网站的民意投票结果。不管将 ASP.NET Web 页面用于何种目的,您迟早都会需要处理涉及数据库访问、读取和写入数据以及一般的控制操作。 幸运的是,操纵 Web 应用程序的数据库比以前更容易。 .NET Framework 改进了开发复杂的 Web 站点的方式。 ASP.NET 对如何开发复杂和交互的 Web 站点作了重大的改进, ADO.NET 提供了强大而灵活的数据访问功能,从根本上改变了从 Web 应用程序中检索、处理和存储数据的方式。 本书将介绍如何创建能够支持数据的 ASP.NET 应用程序。本书根据一些实践经验进行编写,并列举了演示基础原理的代码示例。本书要求读者对 ASP.NET 和 C# 有一些基本的认识,如果对操纵数据库没有任何经验也没有关系,作者将指导每个过程,包括将 ASP.NET 页面与数据库连接,研究各种读取、处理和更新数据的方法。接下来研究所有涉及侧重于数据的 ASP.NET 编程的问题,包括一些高级的主题,例如使用存储过程和组件。本书还给出了案例分析,将前面几章讨论的内容都置于同一个环境中加以运用。 0.1 本书主要内容 第 1 章介绍创建数据驱动的 Web 站点的一般性概念。特别讨论了 Web 站点与数据之间的关系,在此过程中介绍了 ADO.NET 。在这一章的末尾,还为本书其余章节创建了一个开发环境,讨论了一些可能会遇到的问题。 到底什么是数据库呢?这似乎是个奇怪的问题。第 2 章介绍了不同类型的数据库,如何设计它们,以及如何使用它们存储和检索信息。接下来又概述了 SQL 语言,并与 Microsoft 的数据库方案作了一个简单的比较。 了解了数据库以后,就需要学习如何将它们与 ASP.NET 代码连接。第 3 章首先概述了第 1 章提到的 ADO.NET ,阐明了需要掌握的重要术语。接着是创建和测试对 Northwind 示例数据库的连接,本书将通篇使用该数据库。本章演示了大量例子,演示如何连接不同的数据源,例如 Access , SQL Server , Excel 和 XML ,以便在任何开发环境中都游刃有余。 第 4 章通过一些例子,运用 DataReader 对象读取和显示数据。首先讨论了在 ASP.NET 和 ADO.NET 中处理数据的原理,在 ADO.NET 中引入了 Command 对象。然后介绍如何运用 DataReader 获取数据,接着将那些数据绑定到像单选按钮、复选框这样的不同控件上和最重要的 DataGrid 上。 第 5 章讨论了一个重要的 ADO.NET 对象: DataSet ,它用于存储和检索服务器上任何复杂形式的数据。在介绍完原理之后,使用大量的例子来演示使用 DataSet 的不同方法。 当然,我们并不总是读取其他人的数据,因此第 6 章介绍了如何在现有的数据库中创建自己的记录。该章的主题包括 ASP.NET 的验证控件,以及使用 Command 对象和 DataSet 对象实现记录。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧