当前位置:编程学习 > C#/ASP.NET >>

关于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#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,