C#一个语法格式的疑问。

希望在DataGridView控件中直接修改数据库数据。做出控件如图:代码Form1.cs:namespaceTest03{publicpartialclassForm1... 希望在DataGridView控件中直接修改数据库数据。做出控件如图:
代码Form1.cs:

namespace Test03
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
SqlConnection conn;
SqlDataAdapter adapter;
int intindex = 0;

private void button1_Click(object sender, EventArgs e) //定义button1功能:能连接数据库并填充dataGridView1
{
conn = new SqlConnection("Data Source=SQLofWWW;Initial Catalog=test;Integrated Security=True");
SqlDataAdapter sda = new SqlDataAdapter("select * from WorkTable_1", conn);
DataSet ds = new DataSet();
sda.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
dataGridView1.RowHeadersVisible = false;
for (int i = 0; i < dataGridView1.ColumnCount;i++ )
{
dataGridView1.Columns[i].Width = 84;
}
button1.Enabled = false;
dataGridView1.Columns[0].ReadOnly = true;
}

private DataTable dbconn(string strSql) //定义针对于DataTable的dbconn方法,能创建、连接数据表dtSelect并在其中填充数据。
{
if (conn.State == ConnectionState.Open)
conn.Close();
this.adapter = new SqlDataAdapter(strSql, conn);
DataTable dtSelect = new DataTable();
int rnt = this.adapter.Fill(dtSelect);
return dtSelect;
}

private void button2_Click(object sender, EventArgs e) //定义button2功能:触发dbUpdata,并显示成功。
{
if (dbUpdate())
{
MessageBox.Show("修改成功!");
}
}

private Boolean dbUpdate() //定义dbUptata方法:
{
string strSql = "select * from HIV_WorkTable_1"; //定义要发送的SQL语句。
DataTable dtUpdate = new DataTable();
dtUpdate = this.dbconn(strSql); //upData方法调用dbconn方法,并使dtUpData内容=dtSelect
DataTable dtShow = new DataTable();
dtShow = (DataTable)this.dataGridView1.DataSource; // (DataTable)this.dataGridView1.DataSource;这是什么鸟格式?
dtUpdate.ImportRow(dtShow.Rows[intindex]);
SqlCommandBuilder CommandBuiler;
CommandBuiler = new SqlCommandBuilder(this.adapter);
this.adapter.Update(dtUpdate);
dtUpdate.AcceptChanges();
return true;
}

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
intindex = e.RowIndex;
}
}
}

疑问:
在 private Boolean dbUpdate() 这个方法中的
dtShow = (DataTable)this.dataGridView1.DataSource; // (DataTable)this.dataGridView1.DataSource;这是什么鸟格式?

(DataTable) 这在C#中是什么语法?不了意思,由于是菜鸟,请高手详细点儿解答,谢谢!
展开
 我来答
lrh3321
2015-08-24 · TA获得超过2183个赞
知道大有可为答主
回答量:2296
采纳率:75%
帮助的人:2120万
展开全部
(DataTable) 就是显示类型转换而已,当不能转换时,会报错。
相当于 this.dataGridView1.DataSource as DataTable; //区别是,as在不能转换时 返回null,不能转换为值类型
追问
哦,其作用就是把DataGridView里的表格 再转换回DataTable格式的表对吗?
追答
因为dataGridView1.DataSource 的类型是object ,所以要进行转换。
如果你的 dataGridView1.DataSource 的属性值不是DataTable的话,你这样会引发异常
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式