c# - 检查 ID 行是否存在,如果不存在则创建它

标签 c# mysql

我已经通过网站进行了研究,以找到这个问题的答案,其中大多数都接近我的问题,但它只查找特定的一行。我想将默认 ID 设置为 1,但假设该行已被使用,我希望它搜索这些行,直到创建具有新 ID 的新行。 我是否必须将我的 ID 设置为唯一索引?

示例:(搜索列直到可以创建行)

ID (PK, AI)
(row 1) ID: 1   admin
(row 2) ID: 2   guest
(row 3) ID: 3   user
(row 4) *id is not created so create*

表格

CREATE TABLE IF NOT EXISTS `accounts` (
  `id` int(4) NOT NULL AUTO_INCREMENT,
  `username` varchar(65) NOT NULL DEFAULT '',
  `password` varchar(100) NOT NULL DEFAULT '',
  `access` int(1) NOT NULL DEFAULT '0',
  `hwid` varchar(100) NOT NULL DEFAULT '',
  `ip` varchar(15) NOT NULL DEFAULT '0.0.0.0',
  `pcname` varchar(100) NOT NULL,
  `info` varchar(255) NOT NULL DEFAULT 'None',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `keys` (
  `key` varchar(30) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `log` (
  `Date` varchar(200) NOT NULL,
  `UID` varchar(150) NOT NULL,
  `IP` varchar(30) NOT NULL,
  `Action` varchar(100) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

我也尝试过省略 ID 列

public MySqlDataReader InsertInto(string tableName, string[] values)
        {
            string query = "";
            try
            {
                query = "INSERT INTO `" + tableName + "` (username, password, access, hwid, ip, pcinfo, info) VALUES(" + "'" + values[0] + "'";
                for (int i = 1; i < values.Length; ++i)
                    query += ", '" + values[i] + "'";
                    query += ")";
            }
            catch { }
            return ExecuteQuery(query);
        }

最佳答案

您的问题不是很清楚,但是ID列应该是唯一的(根据您的要求),因此您需要将ID设置为主键唯一 key 。这将确保您的 ID 值不重复并且是唯一的。

您可以将其设为auto_increment 列,以确保 ID 值在每次插入时自动递增,但这不是强制要求。

从您发布的表定义中,我看到您的 ID 列已标记为 PK,并且它是 auto_increment 列,如下所示

CREATE TABLE IF NOT EXISTS `accounts` (
  `id` int(4) NOT NULL AUTO_INCREMENT,

这样,您就可以将 INSERT 语句编写为

insert into `accounts`(`username`,`password`,`access`,`hwid`,`ip`,`pcname`,`info`)
 values('bla','bla',1,'bla','bla','bla','bla');

关于c# - 检查 ID 行是否存在,如果不存在则创建它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41071545/

相关文章:

c# - MVC Url Helper 生成 &amp

c# - 将 BCD 转换代码从 Java 迁移到 .Net

php - 为 Windows 上的初学者 PHP 程序员推荐的工具?

php - 如何使用codeigniter从数据库中检索值

c# - HTMLAgilityPack 和加载超时

c# - 检查当前线程是否等于构造对象的线程

mysql - 完全外连接中的语法错误?

MySQL 在 where 子句中选择查询

java - MySQL: "error in your SQL syntax"的来源

c# - WPF-mvvm。我怎样才能实现这样的 View (设计,图形用户界面)?