datagridview判断下图 邮箱中的值是否存在SQL中,在判断列输出是否

输一个 判断一次,如果 否 messageboxshow"不存在”
图片说明

要源码!

不能实现的话 全部输完判断也可以。。。图片说明

3个回答

添加一个按钮,事件如下面的就行了,mssql自己改下SQL对应的对象


  private void button2_Click(object sender, EventArgs e)
        {

            if (dgv1.Rows.Count > 0)
            {
                //如果不是Access数据库自己驱动和对象,如System.Data.SqlClient.SqlConnection。Access的话自己注意修改access文件路径
                OleDbConnection cn = new OleDbConnection(@"provider=microsoft.jet.oledb.4.0;data source=E:\文件\C#\dgdemo\bin\Debug\data.mdb");
                //SqlConnection cn = new SqlConnection("mssqlserver驱动字符串");//驱动格式如: server=.;database=数据库名;uid=用户名;pwd=用户密码
                cn.Open();
                OleDbCommand cmd = new OleDbCommand();
                //SqlCommand cmd = new SqlCommand();
                cmd.Connection = cn;
                string value = "";
                foreach (DataGridViewRow dr in dgv1.Rows)
                    if (dr.Cells[2].Value != null&&(value=dr.Cells[2].Value.ToString().Trim())!="")
                    {
                        cmd.CommandText = "select count(1) from [userinfo] where [email]='" + SQLReplace(value) + "'";
                        if (cmd.ExecuteScalar().ToString() != "0")
                        {
                            MessageBox.Show("第" + (dr.Index + 1) + "行Email地址“" + value + "”数据库中已经存在!");
                        }
                    }
                cn.Close();
                dgv1.Rows.Clear();
            }
            else MessageBox.Show("没有输入数据!");
        }
Csharpsss
Csharpsss 我只要判断dgv里的每个邮箱在数据库里有没有存在 有的话dgv判断列输出值 true 没有的话dgv判断列输出值 flase 不需要进行存储
接近 2 年之前 回复

datagridview添加CellEndEdit事件,判断下email是否存在数据库中



        private void dgv1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 2)//如果你的邮箱列不在第三列修改这里,下标从0开始
            {
                DataGridViewCell cur = dgv1.CurrentCell;
                if (cur.Value == null) return;
                string value = cur.Value.ToString().Trim();
                if (value != "")//email值不为空判断数据库中是否存在此email
                {
                    OleDbConnection cn = new OleDbConnection(@"provider=microsoft.jet.oledb.4.0;data source=E:\文件\C#\dgdemo\bin\Debug\data.mdb");
                    cn.Open();
                    OleDbCommand cmd = new OleDbCommand("select count(1) from [userinfo] where [email]='" + SQLReplace(value) + "'", cn);

                    bool ex = cmd.ExecuteScalar().ToString() != "0";
                    cn.Close();

                    if (ex)
                    {
                        MessageBox.Show("Email地址“" + value + "”已经存在!");
                        cur.Value = "";//清空值
                        dgv1.CurrentCell = cur;
                        dgv1.BeginEdit(true);
                    }
                }
            }
        }
showbo
支付宝加好友偷能量挖 存在会输出第几行的email值重复
接近 2 年之前 回复
showbo
支付宝加好友偷能量挖 回复Csharpsss: 看下面的
接近 2 年之前 回复
Csharpsss
Csharpsss 回复showbo: 嗯嗯 校验全部的 然后在判断那列输出true flase
接近 2 年之前 回复
Csharpsss
Csharpsss 回复showbo: OleDbConnection cn = new OleDbConnection(@"provider=microsoft.jet.oledb.4.0;data source=E:\文件\C#\dgdemo\bin\Debug\data.mdb"); cn.Open(); OleDbCommand cmd = new OleDbCommand("select count(1) from [userinfo] where [email]='" + SQLReplace(value) + "'", cn); SQLserver只要改这边的语句吗
接近 2 年之前 回复
showbo
支付宝加好友偷能量挖 回复Csharpsss: 校验全部的?
接近 2 年之前 回复
showbo
支付宝加好友偷能量挖 回复Csharpsss: 什么意思?就是新增按钮?点击这个按钮执行校验?
接近 2 年之前 回复
Csharpsss
Csharpsss 加个Button判断整列也可以了 但也要在判断列输出 true flase
接近 2 年之前 回复
Csharpsss
Csharpsss 你这个是access的吧 我想要sql server的 判断那一列只要体现true flase 当flase的时候有个messagebox提醒 不存在就可以了
接近 2 年之前 回复
 private void button2_Click(object sender, EventArgs e)
        {

            if (dgv1.Rows.Count > 0)
            {
                //如果不是Access数据库自己驱动和对象,如System.Data.SqlClient.SqlConnection。Access的话自己注意修改access文件路径
                OleDbConnection cn = new OleDbConnection(@"provider=microsoft.jet.oledb.4.0;data source=E:\文件\C#\dgdemo\bin\Debug\data.mdb");
                //SqlConnection cn = new SqlConnection("mssqlserver驱动字符串");//驱动格式如: server=.;database=数据库名;uid=用户名;pwd=用户密码
                cn.Open();
                OleDbCommand cmd = new OleDbCommand();
                //SqlCommand cmd = new SqlCommand();
                cmd.Connection = cn;
                string value = "";
                foreach (DataGridViewRow dr in dgv1.Rows)
                    if (dr.Cells[2].Value != null&&(value=dr.Cells[2].Value.ToString().Trim())!="")
                    {
                        cmd.CommandText = "select count(1) from [userinfo] where [email]='" + SQLReplace(value) + "'";
                        dr.Cells[3].Value = cmd.ExecuteScalar().ToString() != "0";
                    }
                cn.Close();
            }
            else MessageBox.Show("没有输入数据!");
        }

图片说明

Csharpsss
Csharpsss 回复showbo: 谢谢
接近 2 年之前 回复
showbo
支付宝加好友偷能量挖 回复Csharpsss: 用我之前的示例里面有这个函数。防注入的。算了,贴这里吧。 protected string SQLReplace(string v) { if (v == null) return ""; return v.Replace("'", "''"); }
接近 2 年之前 回复
Csharpsss
Csharpsss 我上传了图片 有错误 你能帮我看看什么问题吗
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问