关于c#winform数据库中,先判断后更新的问题。
小弟最近新学的vs,因为单位要求做一个小的统计软件,所以我就尝试着做了,但是现在出现了一些问题,想请教各位大神一些问题,还请各位不吝赐教。我这个软件的设计思路是这样的先选择excel表,然后选择导入到数据库中,接着再导入excel表到数据库中,接着覆盖更新数据库。而这些excel表呢,基本上是相同的,只是“很好”、“较好”这几个等级不同,在所选择的等级上填写数字“1”。现在问题就在这里,我的序号和项目名称是不变的,怎么进行判断和更新,在导入其他的excel表时,覆盖更新数据库,使数据库中的等级列的数字增加。因为是初学,领导要的又比较急,对数据库的学习不是很了解,所以请各位帮帮忙,给些思路和代码,谢谢各位了。我现在已经导入到数据库中了,下面是我现在的代码:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using System.Data.SqlClient;
namespace statistics
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
DataTable dt = new DataTable();
string connString = "server = 635-1\\SQLEXPRESS; uid = sa; password = liuya717820; database = jdtj";
SqlConnection conn;
private void Form1_Load(object sender, EventArgs e)
{
// TODO: 这行代码将数据加载到表“jdtjDataSet.Statistics”中。您可以根据需要移动或移除它。
this.statisticsTableAdapter.Fill(this.jdtjDataSet.Statistics);
}
private void button1_Click(object sender, EventArgs e)
{
System.Windows.Forms.OpenFileDialog fd = new OpenFileDialog();
if (fd.ShowDialog() == DialogResult.OK)
{
string fileName = fd.FileName;
bind(fileName);
}
}
private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
{
}
private void bind(string fileName)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + fileName + ";" +
"Extended Properties='Excel 8.0; HDR=Yes; IMEX=1'";
OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", strConn);
DataSet ds = new DataSet();
try
{
da.Fill(ds);
dt = ds.Tables[0];
this.dataGridView1.DataSource = dt;
}
catch (Exception err)
{
MessageBox.Show("操作失败!" + err.ToString());
}
}
//将Datagridview1的记录插入到数据库
private void button2_Click(object sender, EventArgs e)
{
conn = new SqlConnection(connString);
conn.Open();
if (dataGridView1.Rows.Count > 0)
{
DataRow dr = null ;
for (int i = 0; i < dt.Rows.Count; i++)
{
dr = dt.Rows[i];
insertToSql(dr);
}
conn.Close();
MessageBox.Show("导入成功!");
}
else
{
MessageBox.Show("没有数据!");
}
}
private void insertToSql(DataRow dr)
{
//excel表中的列名和数据库中的列名一定要对应
//string 序号 = dr["序号"].ToString();
string 项目名称 = dr["项目名称"].ToString();
string 很好 = dr["很好"].ToString();
string 较好 = dr["较好"].ToString();
string 一般 = dr["一般"].ToString();
string 较差 = dr["较差"].ToString();
string sql = "insert into [statistics] values('" + 项目名称 + "','" + 很好 + "','" + 较好 + "','" + 一般 + "','" + 较差 + "')";
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
}
}
}
请各位多多帮忙,谢谢了!!
补充:.NET技术 , C#