标题:[求助]Access数据库插入遇到的问题,大家帮帮我
只看楼主
独孤幽灵
Rank: 1
等 级:新手上路
帖 子:115
专家分:0
注 册:2005-11-24
 问题点数:0 回复次数:5 
[求助]Access数据库插入遇到的问题,大家帮帮我
if(textBox7.Text!=""&&textBox8.Text!=""&&textBox9.Text!=""&&textBox10.Text!=""&&textBox11.Text!=""&&textBox12.Text!=""&&textBox14.Text!="")
{
try
{
string cstring1="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=outin.mdb";
string cmdstr="INSERT INTO guest ([ID],[Name],[Pwd],[Sex],[Native],[Phone],[Money]) VALUES( '"+this.textBox7.Text.Trim()+"','"+this.textBox8.Text.Trim()+"' , '"+this.textBox9.Text.Trim()+"' , '"+this.textBox10.Text.Trim()+"' ,'"+this.textBox11.Text.Trim()+"' , '"+this.textBox12.Text.Trim()+"', '"+this.textBox14.Text.Trim()+"')";
OleDbConnection MyCon1=new OleDbConnection(cstring1);
MyCon1.Open();
OleDbCommand cmd=new OleDbCommand(cmdstr,MyCon1);
int abc=cmd.ExecuteNonQuery();
MyCon1.Close();
if(abc>0)
{MessageBox.Show("成功插入到数据库中","成功");}
}
catch(Exception ex)
{MessageBox.Show("dfds"+ex.ToString());}
}
else
{
MessageBox.Show("输入信息不能为空","插入失败");
}

上面的代码可以插入textbox输入的数据

如果别人不知道里面的数据,而要重新插入,如果与里面的数据(特别是ID)相同的时候,就不能插入了,要怎样处理

ID我已设置为主键,
我不知道怎么写,今天我花了两节课也没弄出来
只好来求助了

[此贴子已经被作者于2005-12-14 8:58:41编辑过]

搜索更多相关主题的帖子: 数据库 Access 
2005-12-13 21:59
唐伯猫
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:5323
专家分:58
注 册:2005-8-9
得分:0 
"如果别人不知道里面的数据,而要重新插入,如果与里面的数据(特别是ID)相同的时候,就不能插入了,要怎样处理"
其实再用select语句,DataReader就可以了.

可以使用 ADO.NET DataReader 从数据库中检索只读、只进的数据流。查询结果在查询执行时返回,在并存储在客户端的网络缓冲区中,直到您使用 DataReaderRead 方法对它们发出请求。使用 DataReader 可以提高应用程序的性能,因为一旦数据可用,DataReader 方法就立即检索该数据,而不是等待返回查询的全部结果;并且在默认情况下,该方法一次只在内存中存储一行,从而降低了系统开销。

当创建 Command 对象的实例后,可调用 Command.ExecuteReader 从数据源中检索行,从而创建一个 DataReader


<iframe name="alimamaifrm" frameborder="0" marginheight="0" marginwidth="0" border="0" scrolling="no" width="300" height="170" src="/go/app/tbk_app/chongzhi_300_170.php?pid=mm_28854300_2441872_11377541&page=chongzhi_300_170.php&size_w=300&size_h=170&stru_phone=1&stru_game=1&stru_travel=1" ></iframe>
2005-12-14 10:38
xzy2002
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2005-10-28
得分:0 
在插入之前验证一下ID是否重复就可以避免了哈。
现在很多网上注册的时候不是都要验证帐号是否存在吗?
你也可以这样哈。
2005-12-14 10:42
独孤幽灵
Rank: 1
等 级:新手上路
帖 子:115
专家分:0
注 册:2005-11-24
得分:0 
谢谢两位的热心帮助

我自己弄了一下,可以实现我想要功能了

代码我也发上来大家看看,可是还是有个问题没有解决

就是连接数据库重复了两次

if(textBox7.Text=="")
{
MessageBox.Show("ID不能为空","错误");
}
else
{
OleDbConnection MyCon=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=outin.mdb");
string selectstr="select * from guest where (ID='"+this.textBox7.Text+"')";
MyCon.Open();
OleDbCommand cmd =new OleDbCommand(selectstr,MyCon);
int count =Convert.ToInt32(cmd.ExecuteScalar());
if(count>0)
{
MessageBox.Show("里面已经有此ID ","请重新输入");
}
else
{
//插入所输入的记录
if(textBox7.Text!=""&&textBox8.Text!=""&&textBox9.Text!=""&&textBox10.Text!=""&&textBox11.Text!=""&&textBox12.Text!=""&&textBox14.Text!="")
{
try
{
string cstring="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=outin.mdb";
string cmdstr="INSERT INTO [guest] ([ID],[Name],[Pwd],[Sex],[Native],[Phone],[Money]) VALUES( '"+this.textBox7.Text.Trim()+"' , '"+this.textBox8.Text.Trim()+"' , '"+this.textBox9.Text.Trim()+"' ,'"+this.textBox10.Text.Trim()+"' , '"+this.textBox11.Text.Trim()+"', '"+this.textBox12.Text.Trim()+"' ,'"+this.textBox14.Text.Trim()+"')";
OleDbConnection MyCon1=new OleDbConnection(cstring);
MyCon1.Open();
OleDbCommand cmd1=new OleDbCommand(cmdstr,MyCon1);
int count1=Convert.ToInt32(cmd1.ExecuteNonQuery());
MyCon1.Close();
if(count1>0)
{
MessageBox.Show("成功插入到数据库中","成功");
}
}
catch(Exception ex)
{
MessageBox.Show("dfds"+ex.ToString());
}
}
else
{
MessageBox.Show("输入信息不能为空","插入失败");
}
}
MyCon.Close();
}

2005-12-14 12:20
唐伯猫
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:5323
专家分:58
注 册:2005-8-9
得分:0 
插入用了一次,查询又用了一次,有什么不妥吗?

<iframe name="alimamaifrm" frameborder="0" marginheight="0" marginwidth="0" border="0" scrolling="no" width="300" height="170" src="/go/app/tbk_app/chongzhi_300_170.php?pid=mm_28854300_2441872_11377541&page=chongzhi_300_170.php&size_w=300&size_h=170&stru_phone=1&stru_game=1&stru_travel=1" ></iframe>
2005-12-17 09:26
独孤幽灵
Rank: 1
等 级:新手上路
帖 子:115
专家分:0
注 册:2005-11-24
得分:0 
OleDbConnection MyCon=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=outin.mdb");
     就是这连接语句用了两次啊

2005-12-17 15:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-38023-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042930 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved