[求助] asp.net 中数据库的问题 [online]

my_infinity 2006-06-18 02:33:15
ad = New OleDbDataAdapter("insert into enter(ID,pass_word,sex)values(" _
& "@ID,@pass_word,@sex)", conn)


If Len(Trim(nametxt.Text)) >= 6 AndAlso Len(Trim(wordtxt.Text)) Then

If wordtxt.Text = rewordtxt.Text Then
'用户密码
Dim paramet As New OleDbParameter("@pass_word", OleDbType.VarChar, 64)
paramet.Value = Trim(wordtxt.Text)
ad.InsertCommand.Parameters.Add(paramet)
'用户名
paramet = New OleDbParameter("@ID", OleDbType.VarChar, 64)
paramet.Value = nametxt.Text
ad.InsertCommand.Parameters.Add(paramet)
'用户性别
paramet = New OleDbParameter("@sex", OleDbType.VarChar, 64)
paramet.Value = Trim(sexlist.SelectedItem.Value)
ad.InsertCommand.Parameters.Add(paramet)

conn.Open()
ad.Fill(Ds1, "enter")
conn.Close()
MsgBox("您已经成功注册,请到登陆页面登陆!", MsgBoxStyle.YesNo, "欢迎您的加入")
Else
MsgBox("您输入的密码不匹配,请再次输入!", MsgBoxStyle.OKOnly, "密码错误!")
wordtxt.Text = ""
rewordtxt.Text = ""

End If

Else
MsgBox("注册信息不能为空,并且长度需大于 6 ", MsgBoxStyle.OKOnly)

End If
=========================================================================================
一前上是偶的代码,我想实现用户注册的功能!
错误于:ad.InsertCommand.Parameters.Add(paramet)类同处。
...全文
312 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
gezichong 2006-06-18
  • 打赏
  • 举报
回复
private void BindGrid(DataGrid datagrid, string strValue)
{
string strconnection = ConfigurationManager.AppSettings["webBlog"] + Server.MapPath("WebBlog.mdb");
System.Data.OleDb .OleDbConnection oledbConn = new System.Data.OleDb.OleDbConnection(strconnection);
System.Data.OleDb.OleDbDataAdapter oledbdataadapter = new System.Data.OleDb.OleDbDataAdapter(strValue, oledbConn);
DataSet ds =new DataSet();
oledbdataadapter.Fill(ds, "webmanager");
datagrid.DataSource = ds.Tables["webmanager"].DefaultView;
datagrid.DataBind();
}
gezichong 2006-06-18
  • 打赏
  • 举报
回复
我有个access的程序:
protected void Add_Click(object sender, EventArgs e)
{
string strvalue = "insert into webmanager(projectName,projectUrl) values(@projectname,@projecurl)";
string strconnection = '自己设置一下 System.Data.OleDb.OleDbConnection strconn= new System.Data.OleDb.OleDbConnection(strconnection);
System .Data .OleDb .OleDbCommand oledbCmd=new System.Data.OleDb.OleDbCommand(strvalue,strconn) ;
oledbCmd.Parameters .Add(new System.Data .OleDb .OleDbParameter ("@projectname",OleDbType.VarChar ,50));
oledbCmd.Parameters["@projectname"].Value = Convert.ToString(projectname.Text);
oledbCmd.Parameters.Add(new OleDbParameter("@projectUrl", OleDbType.VarChar, 100));
oledbCmd.Parameters["@projecturl"].Value = Convert.ToString(projectURL.Text);
strconn.Open();
try
{
oledbCmd.ExecuteNonQuery();
message.Text = "add succeed!";
}
catch
{
message.Text = "add failure!";
}
strconn.Close();
string str = "select *from webmanager";
BindGrid(managerdatagrid, str);'查询数据库
}
AntingZ 2006-06-18
  • 打赏
  • 举报
回复
哦,是我搞错了,Access可以用命名参数,SQL Server使用存储过程也可以用,只是CommandType为Text时并且数据库是SQLServer才需要使用问号。
amandag 2006-06-18
  • 打赏
  • 举报
回复
哎,这里没环境,想调也搞不了
AntingZ 2006-06-18
  • 打赏
  • 举报
回复
我只用过SQLSERVER,所有都是用的SqlClient,记得Oledb参数用?的,可能记错了 :(
my_infinity 2006-06-18
  • 打赏
  • 举报
回复
不对吧,oledb 照样可以使用@id喔,而且我想用的是oOleDbDataAdapter
oledbcommand 这样写是没问题的
comm = New OleDbCommand("insert into list(姓名,年龄,性别)values(@姓名,@年龄,@性别)", conn)
Dim oledbparas As New OleDbParameter("@姓名", OleDbType.VarChar, 64) ', "姓名")
oledbparas.Value = dbtxt1.Text
comm.Parameters.Add(oledbparas)
oledbparas = New OleDbParameter("@年龄", OleDbType.VarChar, 64) ', "年龄")
oledbparas.Value = dbtxt2.Text
comm.Parameters.Add(oledbparas)
oledbparas = New OleDbParameter("@性别", OleDbType.VarChar, 64) ', "性别")
oledbparas.Value = dbtxt3.Text
comm.Parameters.Add(oledbparas)
Try
conn.Open()
comm.ExecuteNonQuery()
MsgBox("添加数据成功!", MsgBoxStyle.OKOnly, "提示")
ad.Fill(DataSet11, "list")
DataGrid1.DataSource = DataSet11.list
conn.Close()
Catch ex As Exception
MessageBox.Show(ex.ToString, "错误", MessageBoxButtons.YesNo, MessageBoxIcon.Warning)
End Try
End Sub
amandag 2006-06-18
  • 打赏
  • 举报
回复
ad = New OleDbDataAdapter("insert into enter(ID,pass_word,sex)values(" _
& "@ID,@pass_word,@sex)", conn)
//value前加个空格
ad = New OleDbDataAdapter("insert into enter(ID,pass_word,sex) values(" _
& "@ID,@pass_word,@sex)", conn)
AntingZ 2006-06-18
  • 打赏
  • 举报
回复
把上面的固定字符串换成你的控件中的值,注意添加参数的顺序必须与SQL中字段的顺序一致。
AntingZ 2006-06-18
  • 打赏
  • 举报
回复
还有你使用的old db不能用@id之类的命名参数,应该使用?占位符。

你这样试试看:

Dim sql As String
sql = "insert into enter(ID,pass_word,sex) values(?,?,?)"

Dim cmd As New OleDbCommand(sql, conn)

'用户名
Dim paramet As New OleDbParameter("ID", OleDbType.VarChar, 64)
paramet.Value = "AntingZ"
cmd.Parameters.Add(paramet)

'用户密码
paramet = New OleDbParameter("pass_word", OleDbType.VarChar, 64)
paramet.Value = "123456"
cmd.Parameters.Add(paramet)

'用户性别
paramet = New OleDbParameter("sex", OleDbType.VarChar, 64)
paramet.Value = "男"
cmd.Parameters.Add(paramet)

conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
my_infinity 2006-06-18
  • 打赏
  • 举报
回复
Access
AntingZ 2006-06-18
  • 打赏
  • 举报
回复
你用的是什么数据库? Access 、 Sql Server or Other
my_infinity 2006-06-18
  • 打赏
  • 举报
回复
要怎么指定呀?
ad.InsertCommand.Parameters.Add(paramet) 不是已经添加了参数了么?
AntingZ 2006-06-18
  • 打赏
  • 举报
回复
InsertCommand是Nothing,没有指定呀
ad.Fill()是用来读取数据的,不是插入数据的
my_infinity 2006-06-18
  • 打赏
  • 举报
回复
有人能帮我解决一下吗,我D我D我DDD!!!
在先等啊!急!

16,720

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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