C/S程序开发时经常需要进行EXCEL的数据导入,下面介绍一种简单的导入方式:
一、读取EXCEL到gridControl里面
在导入数据的时候可以先将EXCEL的数据导入到gridControl控件里面,相当于一个预览功能,然后再提交到数据库。
OpenFileDialog ofg = new OpenFileDialog();
if (ofg.ShowDialog() != DialogResult.OK) return;
Microsoft.VisualBasic.FileIO.TextFieldParser TF = new Microsoft.VisualBasic.FileIO.TextFieldParser(ofg.FileName, Encoding.GetEncoding("GB2312"));
TF.Delimiters = new string[] { "," }; //设置分隔符
string[] strLine;
int rowIndex = 0;
while (!TF.EndOfData)
{
rowIndex++;
try
{
strLine = TF.ReadFields();
//开始导入数据
if (rowIndex == 1)
{//标题行
ConvertStringarrToDataTableTitle(strLine);
}
else
{ //数据行
ConvertStringarrToDataTable(strLine);
}
}
catch
{
}
}
TF.Close();
this.gridControl1.DataSource = m_dt.DefaultView.ToTable();
///
/// 读取标题
///
/// ///
public bool ConvertStringarrToDataTableTitle(String[] title)
{
//创建行向表中填充行数据
foreach (string v in title)
{
m_dt.Columns.Add(v, typeof(string));
}
return true;
}
///
/// 读取行数据
///
///
///
二、循环提交到数据库
foreach (DataRow row in m_dt.Rows)
{
//执行存储将数据写入数据库
String ret = 存储名称(
row["条码编号"].ToString(),
row["姓名"].ToString(),
row["性别"].ToString(),
row["年龄"].ToString(),
row["现居住地址"].ToString(),
row["电话"].ToString(),
row["证件号"].ToString(),
row["采样时间"].ToString()
);
//显示导入显示信息
DisplayInfo(ret);
///
/// 导入提示
///
///
private void DisplayInfo(String info)
{
memoEdit1.Text = String.Format("{0}rn{1}", memoEdit1.Text, info);
}