添加DataRow 未将对象引用设置到对象的实例

添加DataRow 未将对象引用设置到对象的实例,第1张

你这一句:System.Data.DataRow row = ds.Tables["course"].NewRow()

中的ds是什么?说得详细点儿?你是不是想自己构造一个数据表对象DataTable做为数据源?

你可以直接构造一个DataTable做为数据源绑定也是一样的,如:

DataTable dt = new DataTable("course")

DataColumn dc_t = new DataColumn("CourseTitle",Type.GetType("System.String"))

DataColumn dc_u = new DataColumn("UCASCode",Type.GetType("System.String"))

DataColumn dc_c = new DataColumn("CModule",Type.GetType("System.String"))

DataColumn dc_s = new DataColumn("StudyStyle",Type.GetType("System.String"))

DataColumn dc_sid = new DataColumn("SIDCard",Type.GetType("System.String"))

DataColumn dc_sid = new DataColumn("SIDCard",Type.GetType("System.String"))

this.dt.Columns.Add(dc_t)

this.dt.Columns.Add(dc_u)

this.dt.Columns.Add(dc_c)

this.dt.Columns.Add(dc_s)

this.dt.Columns.Add(dc_sid)

DataRow dr= dt.NewRow()

dr["CourseTitle"] = this.txtCTitle.Text.Trim()

dr["UCASCode"] = this.txtucas.Text.Trim()

dr["CModule"] = this.txtModule.Text.Trim()

dr["StudyStyle"] = this.ddlModeStudy.SelectedItem.Value

dr["SIDCard"] = "aa"

dt.Rows.Add(dr)

this.DataGrid2.DataSource = dt

this.DataGrid2.DataBind()

假设Dt 是原来的table,然后在事件里面写

dt.Columns.Add("新的列", typeof(string))

foreach (DataRow dr in dt.Rows)

{

dr["新的列"] = "c"

}

“c”,赋值的时候 你可以用你想要放的数组的值。

不知道你这里的数据添加不进去是什么意思?是添加不仅数据库呢还是添加不进DataTable呢?下面我给出一段自己的代码实例。将数据更新紧数据库的代码我自己注释掉了。如果你需要将数据更新进数据库的话取消注释就可以了。

说明:dataGridView1是使用的控件(DataGridView)的名称。

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 demo01

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent()

}

private void btnGet_Click(object sender, EventArgs e)

{

BindData()

}

private void BindData()

{

string connstr = "server=(local) initial catalog=school uid=sa pwd=123456"

SqlDataAdapter sda = new SqlDataAdapter("select * from students", connstr)

DataTable dt = new DataTable()

sda.Fill(dt)

// 添加新行,注意,这里的 *** 作不会将结果更新到数据库

DataRow dr = dt.NewRow()

dr["uid"] = "is8888"

dr["name"] = "is8888"

dr["password"] = "123456"

dr["sex"] = "男"

dr["age"] = 23

dt.Rows.Add(dr)

// 如果需要将数据更改更新到数据库,则请取消下面代码的注释

/*

SqlCommandBuilder scb = new SqlCommandBuilder(sda)

sda.InsertCommand=scb.GetInsertCommand()

sda.Update(dt)

*/

dataGridView1.DataSource = dt

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11258397.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存