c#-数据库中主键信息存在,注册信息中主键信息重复问题

问题描述

数据库中主键信息存在,注册信息中主键信息重复问题
public partial class 挂号界面 : Form
{
       OleDbConnection con = new OleDbConnection();
       string str = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:hospitaldata.accdb";

    public 挂号界面()
    {
        InitializeComponent();
        con.ConnectionString = str;

    }

    private void Form2_Load(object sender, EventArgs e)
    {

    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {

    }

    private void textBox2_TextChanged(object sender, EventArgs e)
    {

    }

    private void textBox3_TextChanged(object sender, EventArgs e)
    {

    }

    private void textBox4_TextChanged(object sender, EventArgs e)
    {

    }

    private void button1_Click(object sender, EventArgs e)
    {
        string a = textBox1.Text;
        string b = textBox2.Text;
        string c = textBox3.Text;
        string d = textBox4.Text;
       OleDbCommand cmd = new OleDbCommand(@"insert into [patient](ID,姓名,年龄,性别) values(" + a + ",'" + b + "'," + c + ",'" + d + "')");
       con.Open();
        cmd.Connection = con;
        cmd.ExecuteNonQuery();
        con.Close();

            MessageBox.Show("挂号成功!");

    }

    private void button2_Click(object sender, EventArgs e)
    {
        textBox1.Text = "";
        textBox2.Text = "";
        textBox3.Text = "";
        textBox4.Text = "";

    }

    private void button3_Click(object sender, EventArgs e)
    {
        this.Hide();
        new 挂号缴费界面().ShowDialog();
    }
}

}
求注册的信息中ID在数据库中已经存在,提示ID存在的代码 ,并告知添加在何处

解决方案

你可以自己sql查一遍,返回数据如果不为空,表示存在,你自己提示

解决方案二:

好像回答过你了。设置主键。

要具体代码,请采纳所有我回答的问题,再上传你的程序到网盘,写给你。

解决方案三:

  • ID是身份证号么?那应该是字符类型的吧。你的Insert语句要加''
  • 在insert之前,先做一个SELECT COUNT(*) FROM [patient] WHERE [ID]=@ID;如果Count的值>0,则说明有这个ID

解决方案四:

你自己直接select先查询一下,或者用INSERT ignore这样当存在就不会插入

时间: 2024-11-08 18:23:08

c#-数据库中主键信息存在,注册信息中主键信息重复问题的相关文章

ie-IE自动清除缓存的选择框在注册表中的路径

问题描述 IE自动清除缓存的选择框在注册表中的路径 RT, 图中的选择框在注册表中的路径和值在那里 解决方案 HKEY_LOCAL_MACHINESoftwarePoliciesMicrosoftInternet ExplorerPrivacy : ClearBrowsingHistoryOnExit type (equals) reg_dword value External Variable:oval:gov.nist.USGCB.ie8:var:31095 (Computer Config

Visual C#来删除注册表中的注册信息

visual|注册表 在<用Visual C#读取注册信息>的文中,已经介绍了用 Visual C#来读取注册表中的注册信息.本文就来介绍用Visual C#对注册表的另外一个操作,这也是一个具有破坏性的操作过程--删除注册信息. 在上文中已经知道,由于Visual C#本身没有带类库,他对注册表的处理过程是通过调用.Net FrameWork SDK中的名称空间Microsoft.Win32中封装的二个类来实现的.这二个类就是Registry类.RegistryKey类.在 Registry

注册表中存储数据库链接字符串

链接|数据|数据库|注册表|字符串 引言: 数据库的链接字符串是用数据库开发所必须的信息,我们通过链接字符串连接数据库,并进行各种数据库操作.那么链接字符串的存到哪里好呢?这没有什么定论,Asp系统开发中,一般存在一个conn.asp包含文件中或者如果又是COM,可能还会封闭到COM中,.Net开发中,大多数都选择存在Web.conifg中,也有人存储在另外一个单独的文件中.那么本文提供的是把数据库链接信息存储到注册表中的方案.也许你要问为什么要存到注册表呢?我想最起码的好处是安全,注册表的访问

注册表中存储数据库链接字符串的方法_实用技巧

数据库的链接字符串是用数据库开发所必须的信息,我们通过链接字符串连接数据库,并进行各种数据库操作.那么链接字符串的存到哪里好呢?这没有什么定论,Asp系统开发中,一般存在一个conn.asp包含文件中或者如果又是COM,可能还会封闭到COM中,.Net开发中,大多数都选择存在Web.conifg中,也有人存储在另外一个单独的文件中.那么本文提供的是把数据库链接信息存储到注册表中的方案.也许你要问为什么要存到注册表呢?我想最起码的好处是安全,注册表的访问权限很高,一般远程服务在没有得到管理员账号的

java-问题 如何用Java程序实现,父表的主键插入到子表的外键中?

问题描述 问题 如何用Java程序实现,父表的主键插入到子表的外键中? 需求从excel导入数据到mysql数据库,然后父表的主键是自增列,插入数据同时把主键插入子表的外键中(我已经把主表的数据插入了)

用Visual C# 来删除注册表中的注册信息

在<用Visual C#读取注册信息>的文中,已经介绍了用 Visual C#来读取注册表中的注册信息.本文就来介绍用Visual C#对注册表的另外一个操作,这也是一个具有破坏性的操作过程--删除注册信息.在上文中已经知道,由于Visual C#本身没有带类库,他对注册表的处理过程是通过调用.Net FrameWork SDK中的名称空间Microsoft.Win32中封装的二个类来实现的.这二个类就是Registry类.RegistryKey类.在RegistryKey类中定义了三个方法来

在注册表中删除MSSQL无用的数据库注册

数据|数据库|注册表 开发人员经常在MSSQL企业管理器中注册远程的MSSQL服务器,直接在企业管理器中删除这些远程的MSSQL注册挺痛苦的,其实是可以在注册表中直接删除的. 找到HKEY_CURRENT_USER oftware\Microsoft\Microsoft SQL Server\80\Tools QLEW\Registered Servers X QL Server Group,里面每一项分别对应一个数据库注册表项,直接删除即可.

vc++6.0中代码问题:显示完整的现存学员信息后,还要显示主菜单

问题描述 vc++6.0中代码问题:显示完整的现存学员信息后,还要显示主菜单 #include #include int menu(); void init(); void listStu(); int insertNewStu(int row); int getStuRowByNo(char no[]); int deleteByNo(); void analyse(char c[]); /****************************************************

多个字段筛选数据-一个表没有主键,怎么通过表中的2个或多个字段进行数据筛选查询

问题描述 一个表没有主键,怎么通过表中的2个或多个字段进行数据筛选查询 表如图,表中有3个字段,但不没有主键,我希望查询出pid不等于1并且name不等于n2的记录,期望的结果如下: pid name value 1 n1 1 1 n3 1 2 n2 2 2 n4 3 解决方案 SELECT * FROM demo where pid<>1 and name<>'n2' 解决方案二: 哥 你这条语句只筛选出了我不希望要的数据, 我要的数据是这样,排除掉pid = 1 并且 name

动态获得记录信息,然后先将获得的记录信息保存在一个列表(内存中),再定义一个定时器,定期将列表中的记录(批量)写入数据库

问题描述 windFrom当点击添加学生信息时,是先将学生记录保存在一个列表(内存中),定义一个定时器,定期将列表中的学生记录(批量)写入数据库如何做?高手请进,谢谢.//学生信息实体.cspublicclassstuInfo{publicstringname;//学生性名publicstringsex;//学生性别publicstringinfo;//备注信息}//DAO操作.cspublicclassDAO_stuInfo{privateDataBasedb;publicDAO_stuInf