当前位置:编程学习 > C#/ASP.NET >>

谁能告诉我段代码错在哪里了?关于ASP.NET 连接ACCESS数据库

using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Collections; using System.Data.OleDb; public partial class _Default : System.Web.UI.Page { protected void Button1_Click(object sender, EventArgs e) { string str = "Provide=Microsoft.Jet.OLEDB.4.0; Data Source=~/App_Data/tb_news.mdb"; OleDbConnection myConn = new OleDbConnection(str); myConn.Open(); OleDbCommand Cmd = new OleDbCommand("insert into tb_news(Title) value('第一个标题')", myConn); Cmd.ExecuteNonQuery(); myConn.Close(); } } 我添加了一个按钮,作用是向ACC数据库里面添加内容,但是当单击添加按钮的时候总是出现下面的错误信息: 请问到底是为什么,我检查了十几遍都查不出毛病,真要崩溃了!!
答案:错误指出你的Provider写错了,不知道是不是“笔误”,看你的代码:
string str = "Provide=Microsoft.Jet.OLEDB.4.0; 
Provode 改成 Provider
其他:OleDbCommand Cmd = new OleDbCommand("insert into tb_news(Title) value('第一个标题')", myConn); 这句错啦 public static Page pg = new Page();
public static string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pg.Server.MapPath(" ~/DataBase/csteach.mdb");
这是我的连库字符串,希望对你有帮助!

还有就是你的using指令是不是全拷了?我看着缺东西! Provider
sql也错了   是values //存储过程代码
CREATE PROCEDURE [AddNewInvoiceInfo] (@sUserID int,@sClaimMethod varchar(50),@sInvoiceNum varchar(50),@sInvoiceDate datetime,@sBuyCity varchar(50))AS

Insert Into SMB_InvoiceInfo (MemberID,ClaimMethod,InvoiceNum,InvoiceDate,InvoiceCity) Values (@sUserID,@sClaimMethod,@sInvoiceNum,@sInvoiceDate,@sBuyCity)
return @@IDENTITY
GO

//调用存储过程代码
Dim CN As New SqlConnection()
Dim InvoiceID As String
Try
CN.ConnectionString = DBConStr
CN.Open()
Dim CMD As SqlCommand
CMD = New SqlCommand("AddNewInvoiceInfo", CN)
CMD.CommandType = CommandType.StoredProcedure

CMD.Parameters.Add(New SqlParameter("@sUserID", SqlDbType.Int))
CMD.Parameters("@sUserID").Value = CInt(UserID.Text)

CMD.Parameters.Add(New SqlParameter("@sClaimMethod", SqlDbType.VarChar, 50))
CMD.Parameters("@sClaimMethod").Value = TransName.Text

CMD.Parameters.Add(New SqlParameter("@sInvoiceNum", SqlDbType.VarChar, 50))
CMD.Parameters("@sInvoiceNum").Value = InvoiceNum.Text

CMD.Parameters.Add(New SqlParameter("@sInvoiceDate", SqlDbType.DateTime))
CMD.Parameters("@sInvoiceDate").Value = InvoiceDate.SelectedDate.Date

CMD.Parameters.Add(New SqlParameter("@sBuyCity", SqlDbType.VarChar, 50))
CMD.Parameters("@sBuyCity").Value = BuyCity.Text

CMD.Parameters.Add(New SqlParameter("@sInvoiceID", SqlDbType.Int))
CMD.Parameters("@sInvoiceID").Direction = ParameterDirection.ReturnValue

CMD.ExecuteNonQuery()
InvoiceID = CMD.Parameters("@sInvoiceID").Value.ToString()
CMD.Dispose()
Catch ex As Exception
Response.Write(ex.ToString())
Finally
CN.Close()
End Try 

上一个:刚学用Access2010建数据库,在“字段1”下输入了15个字段。可是当想为“字段1”另取名称时,却无法办到,
下一个:请高手帮忙!写一条sql语句,我用的是Access数据库 ,查表中dt>2011-3-1 and dt<2011-3-5的记录

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,