FillSchema是用来向DataTable中填入详细的元数据信息的,例如(column names, primary key, constraints等),但不填入数据。
Fill主要是用来填入数据的,它在缺省情况下只填入少量必要的元数据信息,例如(column names, data types)。
所以,一般先用FillSchema来填入详细的元数据信息,再用Fill来填充数据
使用SqlDataAdapter.FillSchema方法可以填充数据表的主键和约束,但无法填充主外键
private void button1_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();//创建一个表
dt = ds.Tables[0];//将DataSet中的数据赋值给dt表
sda.FillSchema(dt, SchemaType.Mapped); //FillSchema是用来向DataTable中填入详细的元数据信息的,例如(column names, primary key, constraints等),但不填入数据。
DataRow dr = dt.Rows.Find(txtID.Text);//表示DataTable中的一行数据
//设置DataRow中的值
dr["orderdate"] = txtorderdate.Text;
dr["ordercode"] = txtordercode.Text;
dr["materialscode"] = txtmaterialscode.Text;
dr["materialsquantity"] = txtmaterialsquantity.Text;
SqlCommandBuilder cmdbuilder = new SqlCommandBuilder(sda);
sda.Update(dt);
}
private void Form1_Load(object sender, EventArgs e)
{
conn = new SqlConnection("server =D008;database =GoogolOrderMangment;uid = sa;pwd = 123456");
SqlCommand cmd = new SqlCommand("select * from materialsdownload", conn);
sda = new SqlDataAdapter();
sda.SelectCommand = cmd;
ds = new DataSet();
sda.Fill(ds, "cs");
dataGridView1.DataSource = ds.Tables[0];
}