为了不想把代码拉的过长,看起来不方便,我就省去了一些代码,如try块就没有写,主要就是想把意思写明白了...(本人开天辟地第一篇)
没有学习DataAdapter之前,都是用Command对象的DataReader()方法来获取数据,并循环写入控件的.
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.SqlClient;
namespace MySchool
{
public partial class DataAdapterToComboBox : Form
{
/// <summary>
/// 该示例是用DataAdapter读取数据并写入ComboBox控件
///
/// subject是一个“科目”表
/// 其实包含两列
/// subjectID 科目ID
/// subjectName 科目名称
/// </summary>
public static string con = "server = .;database = mySchool ; uid = sa ;pwd = sa@";
public static SqlConnection conn = new SqlConnection(con);
public DataSet dataset = new DataSet();
public SqlDataAdapter adapter;
public DataAdapterToComboBox()
{
InitializeComponent();
}
//使用 dataadapter将读取到的数据 写入 ComboBox控件
public void ToCbo()
{
string sql = "SELECT subjectid,subjectName FROM SUBJECT";
adapter = new SqlDataAdapter(sql,conn);
conn.Open();
adapter.Fill(dataset,"subject");
comboBox1.DataSource = dataset.Tables[0];
comboBox1.DisplayMember = "subjectName";
comboBox1.ValueMember = "subjectid";
conn.Close();
}
//添加subjectName的编号到数据库
public void appendToSql()
{
string sql = string.Format("INSERT INTO Question VALUES ({0})", Convert.ToInt32(comboBox1.SelectedValue));
SqlCommand com = new SqlCommand(sql,conn);
conn.Open();
com.ExecuteNonQuery();
conn.Close();
}
//加载窗体
private void DataAdapterToComboBox_Load(object sender, EventArgs e)
{
ToCbo();
}
//单击按钮
private void button1_Click(object sender, EventArgs e)
{
appendToSql();
}
}
}