[英]C# Update Excel Using Oledb datagridview
namespace PROCESS_FOLDER_V2
{
public partial class OrganiZe : Form
{
public OrganiZe()
{
InitializeComponent();
}
int TotalCnt = 0;
private void Insert(int Col1, string Col2, string Col3, string Col4, int Col5)
{
// MessageBox.Show("SNo: " + Col1 + "\n"+"\n" + "Material Code " + Col2 + "\n"+"\n" + "Item Text :" + Col3 +"\n"+"\n"+ "PO Text :" + Col4 + "\n"+"\n"+"PR Number :" + Col5, "OrganiZe");
while (Col4.Contains("'"))
{
Col4 = Col4.Replace("'", "`");
};
while (Col3.Contains("'"))
{
Col3 = Col3.Replace("'", "`");
};
//File.WriteAllText("Char.txt", Col4);
//MessageBox.Show("SNo: " + Col1 + "\n" + "\n" + "Material Code " + Col2 + "\n" + "\n" + "Item Text :" + Col3 + "\n" + "\n" + "PO Text :" + Col4 + "\n" + "\n" + "PR Number :" + Col5, "OrganiZe");
System.Data.OleDb.OleDbConnection MyConnection;
System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
string sql = null;
MyConnection = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=e:\PRTEXT.xls;Extended Properties=Excel 8.0");
MyConnection.Open();
myCommand.Connection = MyConnection;
sql = "INSERT INTO [PR$]"
+ "([SNo],[MATERIAL CODE],[ITEM TEXT],[PO TEXT],[PRNo])"
+ "VALUES('" + Col1 + "','" + Col2 + "','" + Col3 + "','" + Col4 + "','" + Col5 + "')";
myCommand.CommandText = sql;
myCommand.ExecuteNonQuery();
DataSet ds = new DataSet();
OleDbDataAdapter da;
da = new OleDbDataAdapter(myCommand);
DataTable dt = new DataTable();
da.Update(dt);
// da.Fill(ds);
//dgPR.DataSource = ds.Tables[0];
MyConnection.Close();
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// READ TEXT FILE
string PRtext = "";
string PRtextEdited = "";
//***************************************************************
private void ReadPDF(string getName)
{
string strText = null;
PdfReader reader = new PdfReader(getName);
for (int page = 1; page <= reader.NumberOfPages; page++)
{
ITextExtractionStrategy its = new iTextSharp.text.pdf.parser.LocationTextExtractionStrategy();
string s = PdfTextExtractor.GetTextFromPage(reader, page, its);
s = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(s)));
strText = strText + s;
// txtFilee.Text = strText;
}
PRtext = strText;
reader.Close();
//StreamWriter sw = new StreamWriter("PDFtoTEXT.txt");
File.WriteAllText("PDFtoText.txt", PRtext);
//sw.Close();
string lRead;
lRead = strText;
txtFilee.Text = strText;
int IndPrvPage = 0;
int len = 113;
//string Page = "";
if (lRead.Contains("'")) { lRead = lRead.Replace("'", "`"); };
int IndPage = lRead.IndexOf("Page", IndPrvPage);
while (lRead.Contains("Page") == true)
{
if (lRead.Length < (lRead.IndexOf("Page", 0) + len)) { break; }
IndPage = lRead.IndexOf("Page", IndPrvPage);
//Page = lRead.Substring(IndPage, len);
//string temp;
if (IndPage > 0) { lRead = lRead.Remove(IndPage, len); };
if (IndPage < 0) { break; };
IndPrvPage = IndPage;
//MessageBox.Show(Page);
}
//MessageBox.Show(lRead);
File.WriteAllText("PDFtoTEXT.txt", lRead);
PRtextEdited = lRead;
//MessageBox.Show(PRtextEdited);
}
//*******************************************************
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// FINDING AND ORGANIZING
private void btnOrganize_Click(object sender, EventArgs e)
{
FolderBrowserDialog fbd = new FolderBrowserDialog();
fbd.ShowDialog();
string NameFolder = fbd.SelectedPath;
foreach (string getName in Directory.GetFiles(@NameFolder, "*.pdf"))
{
ReadPDF(getName);
int IndInitial = 0;
int index = 0;
string tmp = "";
//*****************
tmp = PRtextEdited;
//***********************
///find PR No.
int PRNo = 0;
int IndPRNo = 0;
string PRNum;
IndPRNo = tmp.IndexOf("Purchase Requisition") + 23;
PRNum = tmp.Substring(IndPRNo, 9);
// MessageBox.Show("Purchase Requisition No: " + PRNum, "OrganiZe");
int Finish = 0;
// string Zeros="000";
string Zeros3 = "000";
string Zeros2 = "00";
string Zeros1 = "0";
int N = 10;
string ItemNo = "00000";
string NxtItemNo = "00000";
int Cnt = 0;
string z = "MATERIAL DESCRIPTION & ITEM TEXT";
int IndZ = 0;
if ((tmp.IndexOf(z) < 0)) { z = "N & ITEM TEXT"; }
IndZ = tmp.IndexOf(z, IndInitial) + 25; // set starting index as MATERIAL DESCRIPTION & ITEM TEXT
//MessageBox.Show(tmp);
do
{
string txtFindPO = "Material PO Text";
string txtFindITEM = "Item Text";
string txtLast = "Prepared By";
string matCode = "";
int indMat = 0;
int indPO = 0, indItem = 0, indNext = 0;
if (N < 100) { ItemNo = Zeros3 + N.ToString(); }
if (N >= 100 && N < 1000) { ItemNo = Zeros2 + N.ToString(); }
if (N >= 1000 && N < 10000) { ItemNo = Zeros1 + N.ToString(); }
//find first item
string Item = ItemNo + " " + "M";
while (tmp.IndexOf(Item, IndZ) == -1)
{
N = N + 10;
if (N < 100) { ItemNo = Zeros3 + N.ToString(); }
if (N >= 100 && N < 1000) { ItemNo = Zeros2 + N.ToString(); }
if (N >= 1000 && N < 10000) { ItemNo = Zeros1 + N.ToString(); }
Item = ItemNo + " " + "M";
}
if (N < 90) { NxtItemNo = Zeros3 + (N + 10).ToString(); }
if (N >= 90 && N < 990) { NxtItemNo = Zeros2 + (N + 10).ToString(); }
if (N >= 990 && N < 9990) { NxtItemNo = Zeros1 + (N + 10).ToString(); }
index = tmp.IndexOf(Item, IndZ);
indMat = index;
indPO = tmp.IndexOf(txtFindPO, index);
if (indPO >= 0) { indPO = indPO + 43; };
indItem = tmp.IndexOf(txtFindITEM, index);
if (indItem >= 0) { indItem = indItem + 9; };
//find next item
string NxtItem = NxtItemNo + " " + "M";
while (tmp.IndexOf(NxtItem, IndZ) == -1)
{
N = N + 10;
if (N < 90) { NxtItemNo = Zeros3 + (N + 10).ToString(); }
if (N >= 90 && N < 990) { NxtItemNo = Zeros2 + (N + 10).ToString(); }
if (N >= 990 && N < 9990) { NxtItemNo = Zeros1 + (N + 10).ToString(); }
NxtItem = NxtItemNo + " " + "M";
indNext = tmp.IndexOf(NxtItem, index);
if (N >= 990)
{
int IndLast = 0;
IndLast = tmp.IndexOf("Prepared By", 0);
IndLast = tmp.IndexOf(txtLast, index);
indNext = IndLast;
Finish++;
break;
};
}
if (Finish < 1)
{
if (N < 90) { NxtItemNo = Zeros3 + (N + 10).ToString(); }
if (N >= 90 && N < 990) { NxtItemNo = Zeros2 + (N + 10).ToString(); }
if (N >= 990 && N < 9990) { NxtItemNo = Zeros1 + (N + 10).ToString(); }
NxtItem = NxtItemNo + " " + "M";
indNext = tmp.IndexOf(NxtItem, index);
}
//**********************
int lenITEM = 0;
int lenPO = 0;
string POtxt = "";
string ITEMtxt = "";
if (indPO > 0 && indItem > 0) { lenPO = (indItem - indPO) - 9; };
if (indPO > 0 && indItem < 0) { lenPO = indNext - indPO - 9; };
if (indItem > 0 && indNext > 0) { lenITEM = (indNext - indItem); }
if (lenPO > 255) { lenPO = 255; }
if (lenPO < 0) { lenPO = 0; }
matCode = tmp.Substring(indMat + 6, 11); //material code
if (indPO > 0) { POtxt = tmp.Substring(indPO, lenPO); }; //MessageBox.Show(POtxt);
if (lenITEM > 255) { lenITEM = 255; }
if (lenITEM < 0) { lenITEM = 0; }
if (indItem > 0) { ITEMtxt = tmp.Substring(indItem, lenITEM); }; //MessageBox.Show(ITEMtxt);
Cnt = Cnt + 1;
PRNo = Convert.ToInt32(PRNum);
Insert(Cnt, matCode, ITEMtxt, POtxt, PRNo); // INSERT INTO TABLE
if (Finish == 1) break;
N = N + 10;
} while (N <= 990);
//sr.Close();
TotalCnt++;
// MessageBox.Show("All Organized", "OrganiZe");
// MessageBox.Show("Total Items Nos: " + Cnt.ToString(), "OrganiZe");
}
MessageBox.Show("All completed. " + "\n" + "\n" + "No of PR processed: " + TotalCnt.ToString(), "OrganiZe");
}
private void btnShow_Click(object sender, EventArgs e)
{
string connetionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=e:\PRTEXT.xls;Extended Properties=Excel 8.0";
string sql = "SELECT * FROM [PR$]";
OleDbConnection connection = new OleDbConnection(connetionString);
connection.ConnectionString = connetionString;
adap = new OleDbDataAdapter(sql, connection);
DataSet ds = new DataSet();
connection.Open();
adap.Fill(ds);
dgPR.DataSource = ds.Tables[0];
connection.Close();
}
private void txtFilter_TextChanged(object sender, EventArgs e)
{
conn = new OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=e:\PRTEXT.xls;Extended Properties=Excel 8.0";
conn.Open();
OleDbCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.Text;
//cmd.CommandText = "SELECT * FROM [PR$] WHERE [MATERIAL CODE] LIKE ('" + txtFilter.Text + "%')";
/* if (cbFilter.SelectedItem.ToString() == "ITEM TEXT")
{
cmd.CommandText = "SELECT * FROM [PR$] WHERE [ITEM TEXT] LIKE ('%" + txtFilter.Text + "%')";
}
if (cbFilter.SelectedItem.ToString() == "PO TEXT")
{
cmd.CommandText = "SELECT * FROM [PR$] WHERE [PO TEXT] LIKE ('%" + txtFilter.Text + "%')";
}
if (cbFilter.SelectedItem.ToString() == "MATERIAL CODE")
{
cmd.CommandText = "SELECT * FROM [PR$] WHERE [MATERIAL CODE] LIKE ('%" + txtFilter.Text + "%')";
}
if (cbFilter.SelectedItem.ToString() == "PRNo")
{
cmd.CommandText = "SELECT * FROM [PR$] WHERE [PRNo] LIKE ('%" + txtFilter.Text + "%')";
}
*/
cmd.CommandText = "SELECT * FROM [PR$] WHERE [ITEM TEXT] LIKE ('%" + txtFilter.Text + "%')";
cmd.ExecuteNonQuery();
//OleDbDataAdapter adap = new OleDbDataAdapter("SELECT * FROM [PR$] LIKE '"+txtFilter.Text+"%'", conn);
DataTable dt = new DataTable();
adap = new OleDbDataAdapter(cmd);
adap.Fill(dt);
dgPR.DataSource = dt;
//MessageBox.Show(dt.Rows[0][0].ToString());
}
//OleDbDataAdapter adap = new OleDbDataAdapter();
// DataSet ds = new DataSet(@"PRTEXT.XLS");
// string sql;
//DataTable dt = new DataTable();
// OleDbConnection conn = new OleDbConnection();
// private string contents;
// OleDbCommandBuilder builder;
// }
private void btnUpdate_Click(object sender, EventArgs e)
{
conn = new OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=e:\PRTEXT.xls;Extended Properties=Excel 8.0";
conn.Open();
string xlsSheet = "PR$";
string name = ds.Tables[0].Rows[0][0].ToString();
DataTable dt = (DataTable)dgPR.DataSource;
string changeColumns = "";
for (int i = 0; i < Table.ColumnName.Count; i++)
{
changeColumns += Table.ColumnName[i] + "=@" + Table.ColumnName[i];
if (Table.ColumnName.Count - 1 != i)
changeColumns += ",";
}
adap.UpdateCommand = new OleDbCommand("UPDATE [" + xlsSheet + "] SET " + changeColumns +
" WHERE " + Table.ColumnName[PrimaryColumnIndex] + " = @" + Table.ColumnName[PrimaryColumnIndex], conn);
for (int i = 0; i < Table.ColumnName.Count; i++)
{
adap.UpdateCommand.Parameters.Add("@" + Table.ColumnName[i], OleDbType.Char, 255).SourceColumn = Table.ColumnName[i];
}
foreach (int row in ListOfValues.Keys)
{
Table tbl = ListOfValues[row];
ds.Tables[0].Rows[row][Table.ColumnName[PrimaryColumnIndex]] = ds.Tables[0].Rows[row][PrimaryColumnIndex];
for (int i = 0; i < tbl.Value.Count; i++)
{
ds.Tables[0].Rows[row][Table.ColumnName[tbl.col[i]]] = tbl.Value[i];
}
//adap.UpdateCommand.ExecuteNonQuery();
adap.Update(ds.Tables[0]);
}
conn.Close();
MessageBox.Show("Updated");
}
bool isFormLoad = false;
int PrimaryColumnIndex = 4;
OleDbDataAdapter adap;
DataSet ds;
OleDbConnection conn;
OleDbCommandBuilder builder;
Dictionary<int, Table> ListOfValues = new Dictionary<int, Table>();
public class Table
{
public List<string> Value { get; set; }
public List<int> col { get; set; }
public static List<string> ColumnName;
}
private void OrganiZe_Load_1(object sender, EventArgs e)
{
conn = new OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=e:\PRTEXT.xls;Extended Properties=Excel 8.0";
conn.Open();
adap = new OleDbDataAdapter("SELECT * FROM [PR$]", conn);
ds = new DataSet();
adap.Fill(ds, "PR");
Table.ColumnName = new List<string>();
foreach (DataColumn str in ds.Tables[0].Columns)
{
Table.ColumnName.Add(str.ColumnName);
}
dgPR.DataSource = ds.Tables[0];
conn.Close();
dgPR.Columns[PrimaryColumnIndex].ReadOnly = true;
dgPR.RowValidated += new DataGridViewCellEventHandler(dgPR_RowValidated);
isFormLoad = true;
}
private void dgPR_RowValidated(object sender, DataGridViewCellEventArgs e)
{
if (isFormLoad)
{
Table tbl = new Table();
DataGridView dgv = (DataGridView)sender;
tbl.Value = new List<string>();
tbl.col = new List<int>();
for (int i = 1; i < dgv.ColumnCount; i++)
{
tbl.Value.Add(dgv.Rows[e.RowIndex].Cells[i].Value.ToString());
tbl.col.Add(i);
}
if (ListOfValues.Keys.Contains(e.RowIndex))
{
ListOfValues[e.RowIndex] = tbl;
}
else
ListOfValues.Add(e.RowIndex, tbl);
}
}
}
} }
Code fucntion insert works well in excel. Code fucntion insert在excel中运行良好。 But code Update is not working.also I tried to run step by step..it executes all but stops at adap.update(ds.tables[0]) saying Syntax error in UPDATE statement.
但是代码更新不起作用。所以我试着一步一步地运行..在adap.update(ds.tables [0])执行除了停止在UPDATE语句中的语法错误。
exception: System.Data.OleDb.OleDbException was unhandled
HResult=-2147217900
Message=Syntax error in UPDATE statement.
Source=Microsoft Office Access Database Engine
ErrorCode=-2147217900
Suppose You have following Data in your workSheet PR
假设您在workSheet
PR
有以下数据
FirstName LastName Age
johny Depp 55
Statham John 45
Diana bantley 35
then you have to go through this code in your Button Click for Update 然后你必须在Button Click for Update中查看这段代码
conn= new OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=e:\PRTEXT.xls;Extended Properties=Excel 8.0";
conn.Open();
string xlsSheet = "PR$";
adap.UpdateCommand = new OleDbCommand("UPDATE [" + xlsSheet + "] SET FirstName = ?, LastName = ?, Age = ?" +
" WHERE FirstName = "+ ds.Tables[0].Rows[0][0], conn);
adap.UpdateCommand.Parameters.Add("@FirstName", OleDbType.Char, 255).SourceColumn = "FirstName";
adap.UpdateCommand.Parameters.Add("@LastName", OleDbType.Char, 255).SourceColumn = "LastName";
adap.UpdateCommand.Parameters.Add("@Age", OleDbType.Char, 255).SourceColumn = "Age";
//// Updates the first row
ds.Tables[0].Rows[0]["FirstName"] = "john";
ds.Tables[0].Rows[0]["LastName"] = "Statham";
ds.Tables[0].Rows[0]["Age"] = "55";
adap.Update(ds.Tables[0]);
conn.Close();
MessageBox.Show("Updated");
where we give whole Query of update and in where condition we pass value of first index (ie (Zero index) value) , this update value Succesfully by changing our data DataTable Zero Index row. 我们给出整个查询更新和在哪里条件我们传递第一个索引的值(即(零索引)值),这个更新值成功地通过改变我们的数据DataTable零索引行。
Here is a full work of your given conditions, kindly check from your end. 这是您的特定条件的全部工作,请从您的结束检查。
private void btnUpdate_Click(object sender, EventArgs e)
{
conn.Open();
string xlsSheet = "PR$";
string name = ds.Tables[0].Rows[0][0].ToString();
DataTable dt = (DataTable)dgPR.DataSource;
string changeColumns = "";
for (int i = 0; i < Table.ColumnName.Count; i++)
{
changeColumns += Table.ColumnName[i] + "=@" + Table.ColumnName[i];
if (Table.ColumnName.Count - 1 != i)
changeColumns += ",";
}
adap.UpdateCommand = new OleDbCommand("UPDATE [" + xlsSheet + "] SET " + changeColumns +
" WHERE " + Table.ColumnName[PrimaryColumnIndex] + " = @" + Table.ColumnName[PrimaryColumnIndex], conn);
for (int i = 0; i < Table.ColumnName.Count; i++)
{
adap.UpdateCommand.Parameters.Add("@" + Table.ColumnName[i], OleDbType.Char, 255).SourceColumn = Table.ColumnName[i];
}
foreach (int row in ListOfValues.Keys)
{
Table tbl = ListOfValues[row];
ds.Tables[0].Rows[row][Table.ColumnName[PrimaryColumnIndex]] = ds.Tables[0].Rows[row][PrimaryColumnIndex];
for (int i = 0; i < tbl.Value.Count; i++)
{
ds.Tables[0].Rows[row][Table.ColumnName[tbl.col[i]]] = tbl.Value[i];
}
adap.Update(ds.Tables[0]);
}
conn.Close();
MessageBox.Show("Updated");
}
bool isFormLoad = false;
int PrimaryColumnIndex = 0;
OleDbDataAdapter adap;
DataSet ds;
OleDbConnection conn;
OleDbCommandBuilder builder;
Dictionary<int, Table> ListOfValues = new Dictionary<int, Table>();
public class Table
{
public List<string> Value { get; set; }
public List<int> col { get; set; }
public static List<string> ColumnName;
}
private void Form1_Load(object sender, EventArgs e)
{
conn = new OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=e:\PRTEXT.xls;Extended Properties=Excel 8.0";
conn.Open();
adap = new OleDbDataAdapter("SELECT * FROM [PR$]", conn);
ds = new DataSet();
adap.Fill(ds, "PR");
Table.ColumnName = new List<string>();
foreach (DataColumn str in ds.Tables[0].Columns)
{
Table.ColumnName.Add(str.ColumnName);
}
dgPR.DataSource = ds.Tables[0];
conn.Close();
dgPR.Columns[PrimaryColumnIndex].ReadOnly = true;
dgPR.RowValidated += new DataGridViewCellEventHandler(dgPR_RowValidated);
isFormLoad = true;
}
private void dgPR_RowValidated(object sender, DataGridViewCellEventArgs e)
{
if (isFormLoad)
{
Table tbl = new Table();
DataGridView dgv = (DataGridView)sender;
tbl.Value = new List<string>();
tbl.col = new List<int>();
for (int i = 1; i < dgv.ColumnCount; i++)
{
tbl.Value.Add(dgv.Rows[e.RowIndex].Cells[i].Value.ToString());
tbl.col.Add(i);
}
if (ListOfValues.Keys.Contains(e.RowIndex))
{
ListOfValues[e.RowIndex] = tbl;
}
else
ListOfValues.Add(e.RowIndex, tbl);
}
}
kindly change PrimaryColumnIndex
which you want to be not change in Excel File. 请更改您希望不在Excel文件中更改的
PrimaryColumnIndex
。
Update: 更新:
Replace btnUpdate_Click
through this. 用这个替换
btnUpdate_Click
。
private void btnUpdate_Click(object sender, EventArgs e)
{
conn.Open();
string xlsSheet = "PR$";
DataTable dt = (DataTable)dgPR.DataSource;
string changeColumns = "";
for (int i = 0; i < Table.ColumnName.Count; i++)
{
changeColumns += "[" + Table.ColumnName[i] + "]"+ "=@" + Table.ColumnName[i];
if (Table.ColumnName.Count - 1 != i)
changeColumns += ",";
}
adap.UpdateCommand = new OleDbCommand("UPDATE [" + xlsSheet + "] SET " + changeColumns +
" WHERE " + "["+ Table.ColumnName[PrimaryColumnIndex] +
"]"+ " = @" + Table.ColumnName[PrimaryColumnIndex], conn);
for (int i = 0; i < Table.ColumnName.Count; i++)
{
adap.UpdateCommand.Parameters.Add("@" + Table.ColumnName[i], OleDbType.Char, 255).SourceColumn = Table.ColumnName[i];
}
foreach (int row in ListOfValues.Keys)
{
Table tbl = ListOfValues[row];
ds.Tables[0].Rows[row][Table.ColumnName[PrimaryColumnIndex]] = ds.Tables[0].Rows[row][PrimaryColumnIndex];
for (int i = 0; i < tbl.Value.Count; i++)
{
ds.Tables[0].Rows[row][Table.ColumnName[tbl.col[i]]] = tbl.Value[i];
}
adap.Update(ds.Tables[0]);
}
conn.Close();
MessageBox.Show("Updated");
}
Update 2 : 更新2:
It is throwing error Because, Space is not supported in Query between Feilds Name. 抛出错误因为,在Feilds Name之间的Query中不支持Space 。
Again update btnUpdate_Click
from following Code 再次从以下代码更新
btnUpdate_Click
private void btnUpdate_Click(object sender, EventArgs e)
{
conn.Open();
string xlsSheet = "PR$";
DataTable dt = (DataTable)dgPR.DataSource;
string changeColumns = "";
for (int i = 0; i < Table.ColumnName.Count; i++)
{
changeColumns += "[" + Table.ColumnName[i] + "]"+ "=@" + Table.ColumnName[i].Replace(' ','_');
if (Table.ColumnName.Count - 1 != i)
changeColumns += ",";
}
adap.UpdateCommand = new OleDbCommand("UPDATE [" + xlsSheet + "] SET " + changeColumns +
" WHERE " + "["+ Table.ColumnName[PrimaryColumnIndex] +
"]"+ " = @" + Table.ColumnName[PrimaryColumnIndex].Replace(' ','_'), conn);
for (int i = 0; i < Table.ColumnName.Count; i++)
{
adap.UpdateCommand.Parameters.Add("@" + Table.ColumnName[i].Replace(' ','_'), OleDbType.Char, 255).SourceColumn = Table.ColumnName[i];
}
foreach (int row in ListOfValues.Keys)
{
Table tbl = ListOfValues[row];
ds.Tables[0].Rows[row][Table.ColumnName[PrimaryColumnIndex]] = ds.Tables[0].Rows[row][PrimaryColumnIndex];
for (int i = 0; i < tbl.Value.Count; i++)
{
ds.Tables[0].Rows[row][Table.ColumnName[tbl.col[i]]] = tbl.Value[i];
}
adap.Update(ds.Tables[0]);
}
conn.Close();
MessageBox.Show("Updated");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.