我有一個名爲Reports的表的SQLite數據庫。沒有我想要做的是添加列中的產品不在表中。向SQLite表添加列不使用完整的項目名稱
因此,它通過報表查看產品列是否存在,如果不存在,則添加列。
下面是代碼:
using Stock_A_Lot.BAL;
using System;
using System.Data;
using System.Windows.Forms;
namespace Stock_A_Lot.PL
{
public partial class Report_Form : Form
{
DBHelper db = new DBHelper();
Database_Handler dbh = new Database_Handler();
public Report_Form()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
DataTable Prods;
String query = "Select ProdDesc From Product";
Prods = db.GetDataTable(query);
DataTable Report;
String queryReport = "Select * From Report";
Report = db.GetDataTable(queryReport);
foreach(DataRow dr in Prods.Rows)
{
ContainColumn(dr[0].ToString() + "Curr", Report);
ContainColumn(dr[0].ToString() + "Prev", Report);
}
}
private void ContainColumn(string columnName, DataTable table)
{
DataColumnCollection columns = table.Columns;
if (columns.Contains(columnName))
{
}
else
{
string query = "ALTER TABLE Report ADD COLUMN " + columnName + " TEXT DEFAULT '0';";
dbh.updatereportable(query);
}
}
}
}
但是當它運行時,它僅使用一個產品名稱的第一個字,例如: 黑色標籤將只被解讀爲黑色,那麼它會拋出一個錯誤,說「重複的列名稱:黑色」。
我不知道我是否錯過了什麼或什麼。請幫忙。