Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 创建新的sql条目,其中一个值为MAX(Column)和#x2B;1给出了组函数的无效使用_Asp.net_Mysql_Sql - Fatal编程技术网

Asp.net 创建新的sql条目,其中一个值为MAX(Column)和#x2B;1给出了组函数的无效使用

Asp.net 创建新的sql条目,其中一个值为MAX(Column)和#x2B;1给出了组函数的无效使用,asp.net,mysql,sql,Asp.net,Mysql,Sql,我想手动创建一个ID字段,其中我执行MAX+1,我想在一个查询中执行此操作,因此我确定两个条目不能获得相同的字段 using (MySqlConnection dbConn = new MySqlConnection(ConfigurationManager.ConnectionStrings["ProjektConStr"].ConnectionString)) { dbConn.Open(); using (MySqlCommand c

我想手动创建一个ID字段,其中我执行MAX+1,我想在一个查询中执行此操作,因此我确定两个条目不能获得相同的字段

        using (MySqlConnection dbConn = new MySqlConnection(ConfigurationManager.ConnectionStrings["ProjektConStr"].ConnectionString))
    {
        dbConn.Open();
        using (MySqlCommand cmd = new MySqlCommand("INSERT INTO Submission (CaseId , SubjectId, CenterId, EmployeeName, Reason, Description, Explanation, Date, Done, ChiefLevel) VALUES (MAX(CaseId)+1, @subject_id, @center_id, @employee_name, @reason, @description, @explanation, @date, @done, @chief)", dbConn))
        {
            cmd.Parameters.AddWithValue("date", submission.Date);
            cmd.Parameters.AddWithValue("subject_id", submission.SubjectId);
            cmd.Parameters.AddWithValue("center_id", submission.CenterId);
            cmd.Parameters.AddWithValue("employee_name", submission.EmployeeName);
            cmd.Parameters.AddWithValue("reason", submission.Reason);
            cmd.Parameters.AddWithValue("description", submission.Description);
            cmd.Parameters.AddWithValue("explanation", submission.Explanation);
            cmd.Parameters.AddWithValue("done", false);
            cmd.Parameters.AddWithValue("chief", false);
            cmd.ExecuteNonQuery();
        } 
    }
在提交文件中插入(CaseId、SubjectId、CenterId、EmployeeName、原因、描述、解释、日期、完成、ChiefLevel)值(


,@subject\u id、@center\u id、@employee\u name、@reason、@description、@explainion、@date、@done、@chief)

您不能在单个查询中执行此操作,或者您必须获取最大id,然后将其递增,然后插入,或者您可以将表设置为自动递增,在这里,您不必在插入查询中包含id。

为什么不使用自动增量?您应该使用标识字段或其他保证唯一的值。MAX+1将导致重复使用删除的值,这很容易导致问题。您可能会得到看起来相关的行,即使它们从来就不应该是相关的。“contentif”应该是CaseId。
          Use subquery to select max and insert a value 
          (1 + coalesce((SELECT max(CaseId) FROM Submission), 0))
 using (MySqlCommand cmd = new MySqlCommand("INSERT INTO Submission 
 (CaseId , SubjectId, CenterId, EmployeeName, Reason, Description, Explanation, 
 Date, Done, ChiefLevel) 
 VALUES ((select MAX(CaseId)+1 from YourTable), 
 @subject_id, @center_id, @employee_name, @reason, @description, @explanation,
 @date, @done, @chief)", dbConn))