请教各位前辈一个简单的问题,上图上,关于把数据保存到数据库中我已经做好了,我的主码是“房号”,现在我如果向数据库中添加一个相同的“房号”,就报错,我想了一个下午解决这个问题来实现这个结果,比如:如果我输入了一个数据库中存储了的数据,弹出一个MessageBox提示,虽然简单,我却弄不懂,请您指教!
12 个解决方案
#1
你可以向数据库查询这个房间号
select 房间号 from 表 where 房间号=11
如果返回了结果就存在,弹出对话框:已存在
如果没有返回结果,就继续插入insert
select 房间号 from 表 where 房间号=11
如果返回了结果就存在,弹出对话框:已存在
如果没有返回结果,就继续插入insert
#2
Update table set columem=value
if @@rowcount==0
insert into
if @@rowcount==0
insert into
#3
可以在房号这个文本框失去焦点的事件里写代码,代码的作用就是去数据库里查询是否有该记录,有就提示出错,并让焦点回到该文本框。
private void textBox1_Leave(object sender, EventArgs e)
{
SqlConnection sqlcon = new SqlConnection("Data Source=.;Initial Catalog=zwk;Integrated Security=True");
sqlcon.Open();
string sql = "select 房间号 from 表 where 房间号='"+textBox1.Text.Trim()+"'";
SqlCommand sqlcom = new SqlCommand(sql, sqlcon);
if(sqlcom.ExecuteNonQuery()==1)
{
MessageBox.Show("已存在该房间号!","提示");
textBox1.Focus();
}
}
#4
学习.
#5
try
{
执行插入
}
catch
{
提示插入失败
}
{
执行插入
}
catch
{
提示插入失败
}
#6
为什么不让房号自己增加呢,或者先查此房号是否被使用后再加
#7
hg
#8
private void button1_Click(object sender, EventArgs e)
{
string M_str_temsql;
SqlDataReader sqlread = boperate.getread("Select 房号 from fwjbxx");
sqlread.Read();
M_str_temsql = sqlread.ToString();
if (fanghao.Text == "")
{
MessageBox.Show("房号不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
if (!opAndvalidate.validateNum(fangjia.Text.Trim()))
{
errorshiyongmianji.Clear();
errorfanghao.Clear();
errorjianzumianji.Clear();
errorfangjia.SetError(fangjia, "房价格式错误!");
}
else if (!opAndvalidate.validateNum(shiyongmianji.Text.Trim()))
{
errorfangjia.Clear();
errorfanghao.Clear();
errorjianzumianji.Clear();
errorshiyongmianji.SetError(shiyongmianji,"使用面积格式错误!");
}
else if (!opAndvalidate.validateNum(jianzumianji.Text.Trim()))
{
errorfanghao.Clear();
errorfangjia.Clear();
errorjianzumianji.Clear();
errorjianzumianji.SetError(jianzumianji, "建筑面积格式错误!");
}
else
{
errorfanghao.Clear();
errorfangjia.Clear();
errorjianzumianji.Clear();
errorjianzumianji.Clear();
boperate.getcom("insert into fwjbxx(房号,户型,建筑面积,使用面积,房价,房屋结构,装修情况,是否签约,是否空房) "
+ "values('" + fanghao.Text.Trim() + "','" + huxing.Text.Trim() + "','" + jianzumianji.Text.Trim()
+ "','" + shiyongmianji.Text.Trim() + "','" + fangjia.Text.Trim() + "','" + jiegou.Text.Trim() + "','"
+ zhuangxiu.Text.Trim() + "','" + qianyue.Text.Trim() + "','" + kongfang.Text.Trim() + "')");
fczh_add_Load(sender, e);
MessageBox.Show("房屋基本信息添加成功!请添加下条记录,如果没有记录,直接退出,点刷新可以直接看到数据库中的数据", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
num += 1;
fanghao.Text = "";
huxing.Text = "";
jianzumianji.Text = "";
shiyongmianji.Text = "";
fangjia.Text = "";
jiegou.Text = "";
zhuangxiu.Text = "";
qianyue.Text = "";
kongfang.Text = "";
labNum.Text = "已经向数据库添加了" + " " + num + " " + "条记录!确认添加完成点“取消”按钮回到“房产综合管理界面”,点击“刷新”查看记录。";
}
}
}
非常感谢的回答,我非常喜欢3楼 zhangwike 的回答,可是你的方法我用了,好像没有执行您的那个textBox控件,6楼前辈的方法确实很好,我也想过,可是代码实现我确实不会,我是初学者,5楼hsbhljl是我认为的最后一步解决方案,可是相对于系统来说,我还是希望能够通过更好的交互式来实现,请各位看以上代码,相比都是高手了,请各位前辈指点迷津,在下感恩不尽……
#9
where not exisits
#10
public static bool AddhouseinfoToDatabase(houseInfo house)
{
SqlConnection con = new SqlConnection(_ConString);
try
{
//连接数据库中
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
con.Open();
cmd.CommandText = string.Format("select * from sysobjects where 房号=house.num);
SqlDataReader dr = cmd.ExecuteReader();
int a = 0;
while (dr.Read())
{
a = 1;
}
dr.Close();
if (a == 1)
{MessageBox.Show("已存在该房间号!","提示");}
return true;
}
catch (Exception)
{
return false;
}
finally
{
//关闭连接
con.Close();
}
}
{
SqlConnection con = new SqlConnection(_ConString);
try
{
//连接数据库中
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
con.Open();
cmd.CommandText = string.Format("select * from sysobjects where 房号=house.num);
SqlDataReader dr = cmd.ExecuteReader();
int a = 0;
while (dr.Read())
{
a = 1;
}
dr.Close();
if (a == 1)
{MessageBox.Show("已存在该房间号!","提示");}
return true;
}
catch (Exception)
{
return false;
}
finally
{
//关闭连接
con.Close();
}
}
#11
非常感谢大家的帮助,用了5楼的方法已经出现了效果,简单实用,非常感谢您,也非常感谢3楼,及各位辛苦敲代码。
#12
需要
#1
你可以向数据库查询这个房间号
select 房间号 from 表 where 房间号=11
如果返回了结果就存在,弹出对话框:已存在
如果没有返回结果,就继续插入insert
select 房间号 from 表 where 房间号=11
如果返回了结果就存在,弹出对话框:已存在
如果没有返回结果,就继续插入insert
#2
Update table set columem=value
if @@rowcount==0
insert into
if @@rowcount==0
insert into
#3
可以在房号这个文本框失去焦点的事件里写代码,代码的作用就是去数据库里查询是否有该记录,有就提示出错,并让焦点回到该文本框。
private void textBox1_Leave(object sender, EventArgs e)
{
SqlConnection sqlcon = new SqlConnection("Data Source=.;Initial Catalog=zwk;Integrated Security=True");
sqlcon.Open();
string sql = "select 房间号 from 表 where 房间号='"+textBox1.Text.Trim()+"'";
SqlCommand sqlcom = new SqlCommand(sql, sqlcon);
if(sqlcom.ExecuteNonQuery()==1)
{
MessageBox.Show("已存在该房间号!","提示");
textBox1.Focus();
}
}
#4
学习.
#5
try
{
执行插入
}
catch
{
提示插入失败
}
{
执行插入
}
catch
{
提示插入失败
}
#6
为什么不让房号自己增加呢,或者先查此房号是否被使用后再加
#7
hg
#8
private void button1_Click(object sender, EventArgs e)
{
string M_str_temsql;
SqlDataReader sqlread = boperate.getread("Select 房号 from fwjbxx");
sqlread.Read();
M_str_temsql = sqlread.ToString();
if (fanghao.Text == "")
{
MessageBox.Show("房号不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
if (!opAndvalidate.validateNum(fangjia.Text.Trim()))
{
errorshiyongmianji.Clear();
errorfanghao.Clear();
errorjianzumianji.Clear();
errorfangjia.SetError(fangjia, "房价格式错误!");
}
else if (!opAndvalidate.validateNum(shiyongmianji.Text.Trim()))
{
errorfangjia.Clear();
errorfanghao.Clear();
errorjianzumianji.Clear();
errorshiyongmianji.SetError(shiyongmianji,"使用面积格式错误!");
}
else if (!opAndvalidate.validateNum(jianzumianji.Text.Trim()))
{
errorfanghao.Clear();
errorfangjia.Clear();
errorjianzumianji.Clear();
errorjianzumianji.SetError(jianzumianji, "建筑面积格式错误!");
}
else
{
errorfanghao.Clear();
errorfangjia.Clear();
errorjianzumianji.Clear();
errorjianzumianji.Clear();
boperate.getcom("insert into fwjbxx(房号,户型,建筑面积,使用面积,房价,房屋结构,装修情况,是否签约,是否空房) "
+ "values('" + fanghao.Text.Trim() + "','" + huxing.Text.Trim() + "','" + jianzumianji.Text.Trim()
+ "','" + shiyongmianji.Text.Trim() + "','" + fangjia.Text.Trim() + "','" + jiegou.Text.Trim() + "','"
+ zhuangxiu.Text.Trim() + "','" + qianyue.Text.Trim() + "','" + kongfang.Text.Trim() + "')");
fczh_add_Load(sender, e);
MessageBox.Show("房屋基本信息添加成功!请添加下条记录,如果没有记录,直接退出,点刷新可以直接看到数据库中的数据", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
num += 1;
fanghao.Text = "";
huxing.Text = "";
jianzumianji.Text = "";
shiyongmianji.Text = "";
fangjia.Text = "";
jiegou.Text = "";
zhuangxiu.Text = "";
qianyue.Text = "";
kongfang.Text = "";
labNum.Text = "已经向数据库添加了" + " " + num + " " + "条记录!确认添加完成点“取消”按钮回到“房产综合管理界面”,点击“刷新”查看记录。";
}
}
}
非常感谢的回答,我非常喜欢3楼 zhangwike 的回答,可是你的方法我用了,好像没有执行您的那个textBox控件,6楼前辈的方法确实很好,我也想过,可是代码实现我确实不会,我是初学者,5楼hsbhljl是我认为的最后一步解决方案,可是相对于系统来说,我还是希望能够通过更好的交互式来实现,请各位看以上代码,相比都是高手了,请各位前辈指点迷津,在下感恩不尽……
#9
where not exisits
#10
public static bool AddhouseinfoToDatabase(houseInfo house)
{
SqlConnection con = new SqlConnection(_ConString);
try
{
//连接数据库中
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
con.Open();
cmd.CommandText = string.Format("select * from sysobjects where 房号=house.num);
SqlDataReader dr = cmd.ExecuteReader();
int a = 0;
while (dr.Read())
{
a = 1;
}
dr.Close();
if (a == 1)
{MessageBox.Show("已存在该房间号!","提示");}
return true;
}
catch (Exception)
{
return false;
}
finally
{
//关闭连接
con.Close();
}
}
{
SqlConnection con = new SqlConnection(_ConString);
try
{
//连接数据库中
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
con.Open();
cmd.CommandText = string.Format("select * from sysobjects where 房号=house.num);
SqlDataReader dr = cmd.ExecuteReader();
int a = 0;
while (dr.Read())
{
a = 1;
}
dr.Close();
if (a == 1)
{MessageBox.Show("已存在该房间号!","提示");}
return true;
}
catch (Exception)
{
return false;
}
finally
{
//关闭连接
con.Close();
}
}
#11
非常感谢大家的帮助,用了5楼的方法已经出现了效果,简单实用,非常感谢您,也非常感谢3楼,及各位辛苦敲代码。
#12
需要