C#中判断数据库里有没有相同信息,如果没有则进行插入等操作

SqlConnectioncon=newSqlConnection("DataSource=.;InitialCatalog=学生管理信息;IntegratedSecur... SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=学生管理信息;Integrated Security=True");
con.Open();
SqlCommand cmd = new SqlCommand( "select * form ClassInfo where ClaName = '"+textBox.Text+"'",con);
if (cmd.ExecuteNonQuery() > 0)
{
MessageBox.Show("班级名称已经存在", "提示");
}
else
{
string sql = "insert into ClassInfo(ClaName,ClaCount) values('" + textBox.Text + "','" + textBox2.Text + "')";
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
MessageBox.Show("成功添加");
}
以上是代码
可是是错误的,无法判断已经存在的班级名称
求助
展开
 我来答
2010zwf
2011-03-27
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=学生管理信息;Integrated Security=True");
con.Open();
SqlCommand cmd = new SqlCommand( "select * form ClassInfo where ClaName = "+textBox.Text,con);
//当你的数据库字段是 ClaName (int) 类型 查询时(where ClaName ="+textBox.Text)
//当你的数据库字段是 ClaName (varchar) 类型 查询时(where ClaName =' "+textBox.Text+"'") 数值两边需加 单引号
if (cmd.ExecuteNonQuery() > 0)
{
MessageBox.Show("班级名称已经存在", "提示");
}
else
{
string sql = "insert into ClassInfo(ClaName,ClaCount) values('" + textBox.Text + "','" + textBox2.Text + "')"; //这行的写法就正确了 添加、查询 一样的!
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
MessageBox.Show("成功添加");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yoyochan7253
2011-03-28 · TA获得超过327个赞
知道答主
回答量:76
采纳率:0%
帮助的人:75.8万
展开全部
SqlCommand cmd = new SqlCommand( "select * form ClassInfo where ClaName = "+textBox.Text,con);
if (cmd.ExecuteNonQuery() > 0)
把这两句换掉,换成
SqlCommand cmd = new SqlCommand( "select count(*) from ClassInfo where ClaName = '"+textBox.Text+"'",con);
if ((Int32)cmd.ExecuteScalar() > 0)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wdoxss900525
2012-02-21 · 超过57用户采纳过TA的回答
知道答主
回答量:274
采纳率:0%
帮助的人:185万
展开全部
我只想说一帮误人子弟的家伙,坑爹啊
SqlCommand cmd = new SqlCommand( "select * form ClassInfo where ClaName = '"+textBox.Text+"'",con);
这句中form???是什么东西???
是from啊!!!!!
没想到还能有英语比我还差的!!!!!!!!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szm341
2011-03-27 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5133万
展开全部
1L正解简单明了ExecuteNonQuery()在查询数据时是不返回任何行的
用ExecuteScalar()来查询表的第一行第一个字段就是Count行数来判断
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lcg1986
2011-03-27 · TA获得超过3374个赞
知道大有可为答主
回答量:1858
采纳率:90%
帮助的人:1608万
展开全部
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=学生管理信息;Integrated Security=True");
con.Open();
SqlCommand cmd = new SqlCommand(string.Format("select Count(*) form ClassInfo where ClaName = '{0}'",textBox.Text), con);//这个地方怎么就不知道要用两个单引号呢.
if ((int)cmd.ExecuteScalar() > 0)
{
MessageBox.Show("班级名称已经存在", "提示");
}
else
{
string sql = "insert into ClassInfo(ClaName,ClaCount) values('" + textBox.Text + "','" + textBox2.Text + "')";
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
MessageBox.Show("成功添加");
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式