我写了一个 关于 投票系统 的程序!using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;namespace 投票系统
{
    class LinkDataBase
    {
        string connectionString = "Persist Security Info=False;Integrated Security=SSPI;database=VotingSystem;server=(local);User ID=sa;Password=";
       //string connectionString = "server=adam_pc;uid=sa;pwd=;database=master";
        public DataSet relateData(string strSql)
        {
            SqlConnection conn = new SqlConnection(connectionString);
            conn.Open();
            SqlDataAdapter da = new SqlDataAdapter(strSql, conn);
            DataSet ds = new DataSet();
            da.Fill(ds);
            return ds;
        }
        public void updatedata(DataSet changeDataSet)        {
            SqlConnection conn = new SqlConnection(connectionString);
            conn.Open();
            SqlDataAdapter da = new SqlDataAdapter("select * from voting", conn);
            SqlCommandBuilder builder = new SqlCommandBuilder(da);
            da.Update(changeDataSet);
            conn.Close();
        }
    }
}
这是我数据库连接的代码!
///////////////////////////////////////////////////////////////////////////////
        private void button_ok_Click(object sender, EventArgs e)
        {
            ds = link.relateData("select * from voting");
            string name = this.textBox_Candidate.Text;
            DataRow dr = ds.Tables[0].NewRow();
            dr[0] = name;
            dr[1] = 0;
            ds.Tables[0].Rows.Add(dr);
            link.updatedata(ds);
            this.label_results.Text = "添加成功!";            //DataRow dr = ds.Tables[0].NewRow();
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                dr = ds.Tables[0].Rows[i];
                this.textBox_All.Text += dr[0].ToString() + dr[1].ToString();
                this.checkedListBox_voing.Items.Add(dr[0].ToString());
            }
        }
这是我执行添加候选人,同时将数据显示再textBox_All和checkedListBox_voing里。(1)
//////////////////////////////////////////////////////////////////////////////////////////////
 private void checkedListBox_voing_ItemCheck(object sender, System.Windows.Forms.ItemCheckEventArgs e)
        {
            int n;
            n = FindDataset(this.checkedListBox_voing.SelectedItem.ToString());
            dr = ds.Tables[0].NewRow();
            dr = ds.Tables[0].Rows[n];
            if (e.CurrentValue.ToString() == "Unchecked")
                dr[1] = 1;
            else if (e.CurrentValue.ToString() == "Checked")
                dr[1] =2;
            link.updatedata(ds);
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                dr = ds.Tables[0].Rows[i];
                this.textBox_All.Text += dr[0].ToString() + dr[1].ToString();
                this.checkedListBox_voing.Items.Add(dr[0].ToString());
            }
        }
        public static int FindDataset(string numstr)
        {            DataRow dr = ds.Tables[0].NewRow();
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                dr = ds.Tables[0].Rows[i];
                if (dr[0].ToString() == numstr)
                {
                    return i;
                }
            }
            return -1;
        }
这是我在checkedListBox_voing里进行修改,并将修改后的数据保存到数据库里,(2)
///////////////////////////////////////////////////////////////////////////////////////////////////////////我再执行(1)的时候 没有问题, 但再执行(2)时,再到  link.updatedata(ds); public void updatedata(DataSet changeDataSet) 有 :对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成。跪求各位高手,帮忙改改!
谢谢!