判断数据是否存在数据库 不存在的添加 存在的就不用添加了 我写的这段 不管有没有 都能添加

fantasykakaxi 2015-07-31 12:02:06
string StrSQL1 = "select UserName from [User] where UserName ='" + TextBox1.Text + "'";
int t = DbHelperSQL.ExecuteSql(StrSQL1);
bool a = Convert.ToBoolean(t);
if (a)
{
DbHelperSQL.ExecuteSql("insert into [User] (UserName)values('" + TextBox1.Text + "')");
}

判断数据是否存在数据库 不存在的添加 存在的就不用添加了
我写的这段 不管有没有 都能添加
...全文
423 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2015-08-01
  • 打赏
  • 举报
回复
ExecuteSql 方法返回的是字符串 所以你 int t = DbHelperSQL.ExecuteSql(StrSQL1); 是错误的! 你可以 string t = DbHelperSQL.ExecuteSql(StrSQL1); if(t.Length == 0) //如果没找到,返回串为空 { //插入操作 }
衣舞晨风 2015-08-01
  • 打赏
  • 举报
回复
用sql获取数据集 判断数据集是否有数据
宝_爸 2015-07-31
  • 打赏
  • 举报
回复
这样? string StrSQL1 = "select count(*) from [User] where UserName ='" + TextBox1.Text + "'"; int t = DbHelperSQL.ExecuteSql(StrSQL1); if (t== 0) {}
fantasykakaxi 2015-07-31
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
你取的是UserName ,怎么就能神奇的Convert.ToBoolean的呢?
那应该咋弄 我是想 取到的为true 取不到的为false
  • 打赏
  • 举报
回复
你取的是UserName ,怎么就能神奇的Convert.ToBoolean的呢?
宝_爸 2015-07-31
  • 打赏
  • 举报
回复
不能用ExecuteNonQuery。 用ExecuteScalar加 string StrSQL1 = "select count(*) from [User] where UserName ='" + TextBox1.Text + "'"; 找到行数多余0行就说明数据已经存在了啊。
fantasykakaxi 2015-07-31
  • 打赏
  • 举报
回复
引用 8 楼 smthgdin 的回复:
DbHelperSQL.ExecuteSql 返回的是int?还是查询结果? 你先看看这个方法的定义,然后就知道怎么处理的了。
我感觉可能是返回值的问题 我贴出来help类中的sql 大神给看看 public static int ExecuteSql(string SQLString) { using (SqlConnection connection = new SqlConnection(connectionString)) { using (SqlCommand cmd = new SqlCommand(SQLString, connection)) { try { connection.Open(); int rows = cmd.ExecuteNonQuery(); return rows; } catch (System.Data.SqlClient.SqlException E) { connection.Close(); throw new Exception(E.Message); } } } }
smthgdin_020 2015-07-31
  • 打赏
  • 举报
回复
DbHelperSQL.ExecuteSql 返回的是int?还是查询结果? 你先看看这个方法的定义,然后就知道怎么处理的了。
fantasykakaxi 2015-07-31
  • 打赏
  • 举报
回复
string StrSQL1 = "select UserName from [User] where UserName ='" + TextBox1.Text + "'"; bool a = Convert.ToBoolean( DbHelperSQL.ExecuteSql(StrSQL1);); if (a) { DbHelperSQL.ExecuteSql("insert into [User] (UserName)values('" + TextBox1.Text + "')"); } 我一开始是这么写的
fantasykakaxi 2015-07-31
  • 打赏
  • 举报
回复
引用 4 楼 chb345536638 的回复:
ExecuteScalar与ExecuteNonQuery区别
这个 这两个都不应该用吧 一个是返回-1 一个是返回第一行的值
fantasykakaxi 2015-07-31
  • 打赏
  • 举报
回复
引用 3 楼 findcaiyzh 的回复:
这样? string StrSQL1 = "select count(*) from [User] where UserName ='" + TextBox1.Text + "'"; int t = DbHelperSQL.ExecuteSql(StrSQL1); if (t== 0) {}
这样还是不对啊 不能向数据里面写数据啊 count(*)查到的不是行数么

110,546

社区成员

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

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

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