簡體   English   中英

插入按鈕后Datagridview特定行到數據庫

[英]Datagridview specific rows to database after insert button

大家好,我有小問題無法弄清楚為什么但是當我將數據從 datagridview 行插入到數據庫時發生錯誤:無效的列名'行中的字符串'。 列名或提供的值的數量與表定義不匹配。 這是我的代碼的一些行:

try
        {
            using (SqlConnection conn = new SqlConnection(cs))
            {
                using (SqlCommand comm = new SqlCommand())
                {
                    comm.Connection = conn;
                    conn.Open();
                    s = 0;
                    for (columnIndex = 0; columnIndex < dgvDataList.Columns.Count; columnIndex++)
                    {
                        columnName = dgvDataList.Columns[columnIndex].Name;
                        if (!regex.IsMatch(columnName))
                        { 
                            if (s == 0)
                            {
                                StrQuery = @"CREATE TABLE FileTable (" + columnName + " varchar(255));";
                                comm.CommandText = StrQuery;
                                comm.ExecuteNonQuery();
                                s++;
                            }
                            else if (s >= 1)
                            {
                                StrQuery = @"ALTER TABLE FileTable ADD [" + columnName + "] varchar (255);";
                                comm.CommandText = StrQuery;
                                comm.ExecuteNonQuery();
                            }

                        }
                    }
                    columnIndex = 0;
                    for (int i = 0; i < dgvDataList.Rows.Count; i++)
                    {
                        columnName = dgvDataList.Columns[columnIndex].Name;
                        if(!regex.IsMatch(columnName))
                        { 
                            StrQuery = @"INSERT INTO FileTable VALUES ([" + dgvDataList.Rows[i].Cells[columnName].Value + "]);";
                            comm.CommandText = StrQuery;
                            comm.ExecuteNonQuery();
                        }
                        columnIndex++;
                    }
                }
            }
        }

任何提示我都會很高興,謝謝。

列名是否真的包含[] 看來您在ALTER查詢中拼寫錯誤。 此外,如果您不希望列值包含[] ,請將其從INSERT查詢中刪除。

將您的INSERT查詢編輯為:

StrQuery = @"INSERT INTO FileTable (" + columnName + ") 
            VALUES ('[" + dgvDataList.Rows[i].Cells[columnName].Value + "]');";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM