asp.net中VB的语法有错
Dim sd As New Data.OleDb.OleDbCommand("insert into user(user,pwd)values ('+use_txt.Text+','+pwd_txt.Text+')", dd)总报sql语句有错,请问一下如何改呀
要是c#的话应该改成
'“+use_txt.Text+”','“+pwd_txt.Text+”'
vb是不是这样改不太确定,好像是&什么的,没有学过vb不是太清楚,lz可以到网上查查…… 我加了'"&&"'也不对 Dim sd As New Data.OleDb.OleDbCommand("insert into user(user,pwd) values ('+use_txt.Text+','+pwd_txt.Text+')",
values 前面加个空格 还是一样报错
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim dd As New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("App_Data\md.mdb"))
Dim sd As New Data.OleDb.OleDbCommand("insert into user(user,pwd) values (' + use_txt.Text+ ','+ pwd_txt.Text + ')", dd)
Try
dd.Open()
Catch ex As Exception
Response.Write(ex.Message)
End Try
Try
sd.ExecuteNonQuery()
Catch ex As Exception
Response.Write(ex.Message)
End Try
Response.Write("<script language='jvavscript'>alert('操作成功');</script>")
End Sub
End Class [quote][bo]以下是引用 [un]hebingbing[/un] 在 2008-5-16 10:42 AM 的发言:[/bo]
'+use_txt.Text+','+pwd_txt.Text+'这里有错误,+use_txt.Text+不是字符串……
要是c#的话应该改成
'“+use_txt.Text+”','“+pwd_txt.Text+”'
vb是不是这样改不太确定,好像是&什么的,没有学过vb不是太清楚,lz可以到网上 ... [/quote]
还是这句话……
呵呵…… 是呀,我问的都有点不好意思了,真不明白为什么try得到的错误就是SQL语法错误 输入那句话还是可以正常,就是运行时报错
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Response.Write(use_txt.Text)
Response.Write("<br>")
Response.Write(pwd_txt.Text)
Response.Write("<br>")
Dim dd As New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("App_Data\md.mdb"))
Dim sql As String = "insert into user(user,pwd) values ( '" + use_txt.Text + "' ,'" + pwd_txt.Text + " ')"
Response.Write(sql)
Response.Write("<br>")
dd.Open()
Dim sd As New Data.OleDb.OleDbCommand(sql, dd)
Try
sd.ExecuteNonQuery()
Catch ex As Exception
Response.Write(ex.ToString)
End Try
Response.Write("<script language='jvavscript'>alert('操作成功');</script>")
End Sub
End Class
运行结果:
asdsa
sadsa
insert into user(user,pwd) values ( 'asdsa' ,'sadsa ')
System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误。 在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr) 在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) 在 System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) 在 System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) 在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) 在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery() 在 _Default.Button1_Click(Object sender, EventArgs e) 位置 F:\asp.net\Default.aspx.vb:行号 19 改成这样的试试……
insert into [user]([user],pwd) 把它移到别的盘就可以正常运行了,怪怪的 这个是可以正常运行,放到那个分区也不可以运行了,这种事如何解释。
Partial Class show
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'Response.Write(i)
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim conn = New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & Server.MapPath("mdb.mdb"))
Dim sql As String = "select * from dcontd"
Dim comm = New Data.OleDb.OleDbCommand(sql, conn)
conn.open()
Dim ds As Data.OleDb.OleDbDataReader
ds = comm.ExecuteReader()
While (ds.Read())
Response.Write(Convert.ToSingle(ds("id")))
Response.Write("<br>")
Response.Write(Convert.ToString(ds("dotype")))
Response.Write("<br>")
Response.Write(Convert.ToString(ds("dtext")))
Response.Write("<br>" & "新记录:")
Response.Write(Convert.ToString(ds("daddress")))
Response.Write("<br>")
End While
ds.Close()
conn.close()
Dim sqll As String = "insert into dcontd(daddress,dtext)values('" + user.Text + "','" + pwd.Text + "')"
Dim con = New Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & Server.MapPath("mdb.mdb"))
con.open()
Dim cc = New Data.OleDb.OleDbCommand(sqll, con)
cc.executenonquery()
End Sub
End Class 因为user是sql的保留字,你加上[]就可以了……
页:
[1]
