C#中如何用ado.net?

liyj19870228 2008-12-13 04:37:59
原本在VB中有段代码是这样的
cmdtxt = "insert into students(studentno,studentname,studentsex,birthdate,speciality,iscy,homeaddress,postalcode,email) values (?,?,?,?,?,?,?,?,?)"
accesscon(constr, cmdtxt)
With cmdoledb
.Parameters("StudentNo").Value = Me.TextBox1.Text
.Parameters("StudentName").Value = Me.TextBox2.Text
.Parameters("StudentSex").Value = Me.RadioButtonList1.SelectedValue
.Parameters("BirthDate").Value = Me.TextBox3.Text
.Parameters("Speciality").Value = Me.DropDownList1.SelectedValue
.Parameters("IsCY").Value = IIf(Me.CheckBox1.Checked, True, False)
.Parameters("HomeAddress").Value = Me.TextBox4.Text
.Parameters("PostalCode").Value = Me.TextBox5.Text
.Parameters("Email").Value = Me.TextBox6.Text
End With

现在我改环境到C#了,不知道该怎么写?在线等 先麻烦大家了,由于毕业设计中用到,比较急
...全文
213 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
wb186 2008-12-15
  • 打赏
  • 举报
回复
学习
liyj19870228 2008-12-13
  • 打赏
  • 举报
回复
不行啊 按进去没反映。。
我QQ是297281258
能麻烦您加我一下 指导一下么?
ljhcy99 2008-12-13
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]

但是我在CLass里面写了这个
public void AccessAdd(string cmdtxt)
{
Credit.PFction.Pfunction Conn=new Pfunction();
cmdoledb = new OleDbCommand(cmdtxt, Conn.SConn);
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CID", System.Data.OleDb.OleDbType.VarWChar, 6, "客户编号"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CName", System.Data.OleDb.OleDbType.VarWChar, 50, "客户姓名"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("Csex", System.Data.OleDb.OleDbType.VarWChar, 2, "客户性别"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CStyle", System.Data.OleDb.OleDbType.VarWChar, 50, "客户种类"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CCAddress", System.Data.OleDb.OleDbType.VarWChar, 100, "地址"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CPhone", System.Data.OleDb.OleDbType.VarWChar, 15, "电话"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CIDCard", System.Data.OleDb.OleDbType.VarWChar, 18, "身份证号码"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CPost", System.Data.OleDb.OleDbType.VarWChar, 50, "邮编"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CNetAddress", System.Data.OleDb.OleDbType.VarWChar, 50, "客户网址"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CEmail", System.Data.OleDb.OleDbType.VarWChar, 30, "Email地址"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("BasicBankName", System.Data.OleDb.OleDbType.VarWChar, 50, "基本开户银行名"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("BasicBankNum", System.Data.OleDb.OleDbType.VarWChar, 50, "基本开户银行卡号"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("BankID", System.Data.OleDb.OleDbType.VarWChar, 12, "本行开户银行编号"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CAccountNum", System.Data.OleDb.OleDbType.VarWChar, 50, "本行开户银行帐号"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CCredit", System.Data.OleDb.OleDbType.VarWChar, 4, "信用评级"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CompanyName", System.Data.OleDb.OleDbType.VarWChar, 50, "公司名称"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CompanyChart", System.Data.OleDb.OleDbType.VarWChar, 50, "公司性质"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("LicenseNum", System.Data.OleDb.OleDbType.VarWChar, 50, "营业执照号码"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("Legal", System.Data.OleDb.OleDbType.VarWChar, 50, "法人代表"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("LegalAddress", System.Data.OleDb.OleDbType.VarWChar, 50, "法人代表地址"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("LegalPhone", System.Data.OleDb.OleDbType.VarWChar, 50, "法人代表联系电话"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("LegalNum", System.Data.OleDb.OleDbType.VarWChar, 50, "法人证件号码"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("Business", System.Data.OleDb.OleDbType.VarWChar, 50, "业务范围"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("RegMoney", System.Data.OleDb.OleDbType.VarWChar, 50, "注册资金"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("Caddress", System.Data.OleDb.OleDbType.VarWChar, 50, "公司地址"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CoutrlerID", System.Data.OleDb.OleDbType.VarWChar, 6, "操作员编号"));
Conn.SConn.Open();
}


怎么用啊?
[/Quote]




cmdoledb.Parameters[0].Value = this.TextBox1.Text;
cmdoledb.Parameters[1].Value = this.TextBox2.Text;

......
对应起来,





flyjimi 2008-12-13
  • 打赏
  • 举报
回复

用下标访问。注意你的sql语句中的参数?占位符的顺序。

cmdoledb.Parameters[0].Value = this.TextBox1.Text;
cmdoledb.Parameters[1].Value = this.TextBox2.Text;
cmdoledb.Parameters[2].Value = this.RadioButtonList1.SelectedValue;
cmdoledb.Parameters[3].Value = this.TextBox3.Text;
cmdoledb.Parameters[4].Value = this.DropDownList1.SelectedValue;
cmdoledb.Parameters[5].Value = this.CheckBox1.Checked;
cmdoledb.Parameters[6].Value = this.TextBox4.Text;
cmdoledb.Parameters[7].Value = this.TextBox5.Text;
cmdoledb.Parameters[8].Value = this.TextBox6.Text;
net5i 2008-12-13
  • 打赏
  • 举报
回复
不好意思,偶全局替换错了,再改下吧:

cmdtxt = "insert into students(studentno,studentname,studentsex,birthdate,speciality,iscy,homeaddress,postalcode,email) values (@StudentNo,@StudentName,@StudentSex,@BirthDate,@Speciality,@IsCY,@HomeAddress,@PostalCode,@Email)";
accesscon[constr, cmdtxt];
cmdoledb.Parameters["StudentNo"].Value = this.TextBox1.Text;
cmdoledb.Parameters["StudentName"].Value = this.TextBox2.Text;
cmdoledb.Parameters["StudentSex"].Value = this.RadioButtonList1.SelectedValue;
cmdoledb.Parameters["BirthDate"].Value = this.TextBox3.Text;
cmdoledb.Parameters["Speciality"].Value = this.DropDownList1.SelectedValue;
cmdoledb.Parameters["IsCY"].Value = this.CheckBox1.Checked;
cmdoledb.Parameters["HomeAddress"].Value = this.TextBox4.Text;
cmdoledb.Parameters["PostalCode"].Value = this.TextBox5.Text;
cmdoledb.Parameters["Email"].Value = this.TextBox6.Text;

未经过测试,只是给搂主一个用法
flyjimi 2008-12-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 flyjimi 的回复:]
2楼也太搞了吧,直接把圆括号替换成方括号了。编译都过不去。
[/Quote]
不好意思,应该是1楼。
liyj19870228 2008-12-13
  • 打赏
  • 举报
回复
但是我在CLass里面写了这个
public void AccessAdd(string cmdtxt)
{
Credit.PFction.Pfunction Conn=new Pfunction();
cmdoledb = new OleDbCommand(cmdtxt, Conn.SConn);
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CID", System.Data.OleDb.OleDbType.VarWChar, 6, "客户编号"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CName", System.Data.OleDb.OleDbType.VarWChar, 50, "客户姓名"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("Csex", System.Data.OleDb.OleDbType.VarWChar, 2, "客户性别"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CStyle", System.Data.OleDb.OleDbType.VarWChar, 50, "客户种类"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CCAddress", System.Data.OleDb.OleDbType.VarWChar, 100, "地址"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CPhone", System.Data.OleDb.OleDbType.VarWChar, 15, "电话"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CIDCard", System.Data.OleDb.OleDbType.VarWChar, 18, "身份证号码"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CPost", System.Data.OleDb.OleDbType.VarWChar, 50, "邮编"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CNetAddress", System.Data.OleDb.OleDbType.VarWChar, 50, "客户网址"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CEmail", System.Data.OleDb.OleDbType.VarWChar, 30, "Email地址"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("BasicBankName", System.Data.OleDb.OleDbType.VarWChar, 50, "基本开户银行名"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("BasicBankNum", System.Data.OleDb.OleDbType.VarWChar, 50, "基本开户银行卡号"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("BankID", System.Data.OleDb.OleDbType.VarWChar, 12, "本行开户银行编号"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CAccountNum", System.Data.OleDb.OleDbType.VarWChar, 50, "本行开户银行帐号"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CCredit", System.Data.OleDb.OleDbType.VarWChar, 4, "信用评级"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CompanyName", System.Data.OleDb.OleDbType.VarWChar, 50, "公司名称"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CompanyChart", System.Data.OleDb.OleDbType.VarWChar, 50, "公司性质"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("LicenseNum", System.Data.OleDb.OleDbType.VarWChar, 50, "营业执照号码"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("Legal", System.Data.OleDb.OleDbType.VarWChar, 50, "法人代表"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("LegalAddress", System.Data.OleDb.OleDbType.VarWChar, 50, "法人代表地址"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("LegalPhone", System.Data.OleDb.OleDbType.VarWChar, 50, "法人代表联系电话"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("LegalNum", System.Data.OleDb.OleDbType.VarWChar, 50, "法人证件号码"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("Business", System.Data.OleDb.OleDbType.VarWChar, 50, "业务范围"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("RegMoney", System.Data.OleDb.OleDbType.VarWChar, 50, "注册资金"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("Caddress", System.Data.OleDb.OleDbType.VarWChar, 50, "公司地址"));
cmdoledb.Parameters.Add(new System.Data.OleDb.OleDbParameter("CoutrlerID", System.Data.OleDb.OleDbType.VarWChar, 6, "操作员编号"));
Conn.SConn.Open();
}


怎么用啊?
ljhcy99 2008-12-13
  • 打赏
  • 举报
回复
SQlConnection con = new SQlConnection(你的数据库连接字符串);---取得连接对象。
我只写一个参数,多个参数也是一样的道理。
Sqlcommand cmd = new Sqlcommand("insert into students(studentno) values (@StudentNo)",con);
cmd.Parameters.add( new SQLParameter("@StudentNo"),Me.TextBox1.Text));
int cnt = cmd.ExcuteNonQuery;
if(cnt>0)
{
messageBox.show("追加数据成功");
}
liyj19870228 2008-12-13
  • 打赏
  • 举报
回复
他说不包含ADD定义的啊
liyj19870228 2008-12-13
  • 打赏
  • 举报
回复
啊 你能告诉我具体怎么写么?
flyjimi 2008-12-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 liyj19870228 的帖子:]
原本在VB中有段代码是这样的
cmdtxt = "insert into students(studentno,studentname,studentsex,birthdate,speciality,iscy,homeaddress,postalcode,email) values (?,?,?,?,?,?,?,?,?)"
accesscon(constr, cmdtxt)
With cmdoledb
.Parameters("StudentNo").Value = Me.TextBox1.Text
.Parameters("StudentName").Value = Me.TextBox2.Text

[/Quote]

楼主是不是用的access做数据库?那就需要使用OleDbCommand ,而OleDbCommand 是不支持sql语句中的命名参数的。只能用?占位。
所以,你的sql语句不用修改。但访问参数只能用下标了。
可以这样添加并设置参数值:cmdoledb.Parameters.Add(value); //value就是你的参数值。
flyjimi 2008-12-13
  • 打赏
  • 举报
回复
2楼也太搞了吧,直接把圆括号替换成方括号了。编译都过不去。
lvfeng180 2008-12-13
  • 打赏
  • 举报
回复
二楼说的挺好的,楼主还有不明白的地方?
liyj19870228 2008-12-13
  • 打赏
  • 举报
回复
我的cmdoledb 是在CLass里面定义的PUBLIC变量
liyj19870228 2008-12-13
  • 打赏
  • 举报
回复
我在CLASS里面已经写了个类了
所以我只用在前台界面里带入具体参数就好了
ACCESS没有存储过程 我就写了个类似的用ADO。net来实现了
net5i 2008-12-13
  • 打赏
  • 举报
回复
当然,搂住还需要把“?”改成“@实际的参数名字”
wuyq11 2008-12-13
  • 打赏
  • 举报
回复
insert into students(studentno,studentname,studentsex,birthdate,speciality,iscy,homeaddress,postalcode,email) values (@ 参数,(@ 参数,(@ 参数,@参数,(@参数,@参数,@参数,@参数,@参数)"
参考
http://www.cnblogs.com/aivdesign/articles/1263007.html
http://www.cnblogs.com/JoeDZ/archive/2008/09/26/1299496.html
net5i 2008-12-13
  • 打赏
  • 举报
回复
cmdtxt = "insert into students[studentno,studentname,studentsex,birthdate,speciality,iscy,homeaddress,postalcode,email] values [?,?,?,?,?,?,?,?,?]";
accesscon[constr, cmdtxt];
cmdoledb.Parameters["StudentNo"].Value = this.TextBox1.Text;
cmdoledb.Parameters["StudentName"].Value = this.TextBox2.Text;
cmdoledb.Parameters["StudentSex"].Value = this.RadioButtonList1.SelectedValue;
cmdoledb.Parameters["BirthDate"].Value = this.TextBox3.Text;
cmdoledb.Parameters["Speciality"].Value = this.DropDownList1.SelectedValue;
cmdoledb.Parameters["IsCY"].Value = this.CheckBox1.Checked;
cmdoledb.Parameters["HomeAddress"].Value = this.TextBox4.Text;
cmdoledb.Parameters["PostalCode"].Value = this.TextBox5.Text;
cmdoledb.Parameters["Email"].Value = this.TextBox6.Text;

110,526

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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