在C#中使用Datagrid的数据库更新 [英] Updating Database using Datagrid in C#

查看:217
本文介绍了在C#中使用Datagrid的数据库更新的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

刚工作的事情最近又需要帮助的IM使用DataGrid的困在这里....从数据库中检索的IM价值观和我想用类似的DataGrid但不知何故,即时通讯有问题来更新数据库,任何人都可以指导我该怎么办这.....在执行查询,如果用户想要更新的东西,他/她可以在正在显示值DataGrid中做选择的数据检索我的意思是......

 如果(textBox1.Text!=|| textBox1.Text == NULL)
{
textBox3.Enabled = FALSE ;
dateTimePicker1.Enabled = FALSE;
dateTimePicker2.Enabled = FALSE;
字符串的txt = textBox1.Text;
dataGridView1.DataSource = NULL;
dataGridView1.Rows.Clear();
dataGridView1.Refresh();

OleDbDataAdapter的dAdapter =新OleDbDataAdapter的(SELECT * FROM [BDetails] WHERE([BranchCode] ='+ @txt +'),connParam);
OleDbCommandBuilder cBuilder =新的OleDbCommandBuilder(dAdapter);


= dataTable的新的DataTable();
的DataSet DS =新的DataSet();

dAdapter.Fill(dataTable的);

如果(dataTable.Rows.Count大于0)
{
的for(int i = 0; I< dataTable.Rows.Count;我++)
{
dataGridView1.Rows.Add(dataTable.Rows [I] [0],dataTable.Rows [I] [1],dataTable.Rows [I] [2],dataTable.Rows [Ⅰ] [3] ,dataTable.Rows [I] [4],dataTable.Rows [I] [5],dataTable.Rows [I] [6],dataTable.Rows [I] [7],dataTable.Rows [Ⅰ] [8] ,dataTable.Rows [I] [11],dataTable.Rows [I] [12]);

}

} //内结束,如果
,否则
{
MessageBox.Show(没有相关资料);
textBox3.Enabled = TRUE;
dateTimePicker1.Enabled = TRUE;
dateTimePicker2.Enabled = TRUE;
} //结束还有内


} //结束外,如果
,否则
{
MessageBox.Show(请输入分公司码);
bookConn.Close();

} //结束外别的



IM绝望的人帮助我



私人无效button8_Click(对象发件人,EventArgs五)
{
READDATA();
//保存数据();

 } //函数结束

无效READDATA( )
{
this.ds =新的DataSet();
//字符串CONNSTRING =CONNICTION STRING GOES HERE;
dAdapter =新OleDbDataAdapter的(,connParam从BDetails选择*);
this.dAdapter.Fill(this.ds[BDetails]);
this.ds.AcceptChanges();
//设置表作为数据源为网格为了说明在网格
this.dataGridView1.DataSource = ds.DefaultViewManager数据;
} //函数结束

无效保存数据()
{
DataSet的更改= this.ds.GetChanges();
如果(修改!= NULL)
{
//数据有变化。在适配器
//使用更新方法。它应该更新您的数据源
INT updatedRows = this.dAdapter.Update(的变化);
this.ds.AcceptChanges();
}
} //函数结束


解决方案

嘛阿比尔。真的有多种方式处理数据,并在很多时候,它是一个开发者优先工作这样或那样的工作。从你的问题,我可以看到,可能是新的与ADO.NET工作,所以我会建议你做一些阅读在.NET处理数据(数据表,数据集,DataGrid中,DataAdapters,数据绑定,...等)



我认为(从我的短经验)来读取并从和向数据源写入数据的最简单的方法是使用一个DataAdapter将数据读入数据集,然后将该数据集作为数据源的一个gridview其中一个用户可以编辑。写回的变化,只需使用更新方法的适配器。这里
是一个示例代码



 的DataSet DS; 
OleDbDataAdapter的DataAdapter的;
无效READDATA()
{
this.ds =新的DataSet();
串CONNSTRING =CONNICTION STRING GOES HERE;
this.dataAdapter =新OleDbDataAdapter的(QUERY GOES HERE,CONNSTRING);
this.dataAdapter.Fill(this.ds,TABLE1);
this.ds.AcceptChanges();
//设置表作为数据源为网格为了说明在网格
this.dataGridView1.DataSource = ds.DefaultViewManager数据;
}

无效保存数据()
{
DataSet的更改= this.ds.GetChanges();
如果(修改!= NULL)
{
//数据有变化。在适配器
//使用更新方法。它应该更新您的数据源
INT updatedRows = this.dataAdapter.Update(的变化);
this.ds.AcceptChanges();
}
}



看到下面的,因为它提供了关于使用更长的样本DataGrid控件



http://www.codeproject.com/Articles/9986/Using-the-DataGrid-Control



和对数据表,数据集和DataGrid的一些介绍见



http://www.codeproject.com/Articles/6179/A-Practical-Guide-to-NET-DataTables-DataSets-and-D


just working on the something lately need help i m again stuck here.... i m retrieving values from database using datagrid and i want to update the database using that similar datagrid but somehow i m having trouble, can anyone guide me how to do that..... i mean when the query is executed and selected data is retrieved if the user wants to update something he/she can do it at the datagrid in which value is being displayed....

if (textBox1.Text != ""|| textBox1.Text==null)
        {
            textBox3.Enabled = false;
            dateTimePicker1.Enabled = false;
            dateTimePicker2.Enabled = false;
            String txt = textBox1.Text;
            dataGridView1.DataSource = null;
            dataGridView1.Rows.Clear();
            dataGridView1.Refresh();

            OleDbDataAdapter dAdapter = new OleDbDataAdapter("SELECT * FROM [BDetails] WHERE ([BranchCode] = '" + @txt + "')", connParam);
            OleDbCommandBuilder cBuilder = new OleDbCommandBuilder(dAdapter);


             dataTable = new DataTable();
            DataSet ds = new DataSet();

            dAdapter.Fill(dataTable);

            if (dataTable.Rows.Count > 0)
            {
                for (int i = 0; i < dataTable.Rows.Count; i++)
                {
                    dataGridView1.Rows.Add(dataTable.Rows[i][0], dataTable.Rows[i][1], dataTable.Rows[i][2], dataTable.Rows[i][3], dataTable.Rows[i][4], dataTable.Rows[i][5], dataTable.Rows[i][6], dataTable.Rows[i][7], dataTable.Rows[i][8], dataTable.Rows[i][11], dataTable.Rows[i][12]);

                }

            }// end inner if
            else
            {
                MessageBox.Show("No Record Found");
                textBox3.Enabled = true;
                dateTimePicker1.Enabled = true;
                dateTimePicker2.Enabled = true;
            }// end inner else


        }// end outer if
        else 
        {
            MessageBox.Show("Please Enter Branch Code");
            bookConn.Close();

        }// end outer else

i m desperate guys help me

private void button8_Click(object sender, EventArgs e) { ReadData(); // SaveData();

    }// end function

    void ReadData()
    {
        this.ds = new DataSet();
      //  string connString = "CONNICTION STRING GOES HERE";
        dAdapter = new OleDbDataAdapter("select * from BDetails", connParam);
        this.dAdapter.Fill(this.ds,"[BDetails]");
        this.ds.AcceptChanges();
        //set the table as the datasource for the grid in order to show that data in the grid
        this.dataGridView1.DataSource = ds.DefaultViewManager;
    }// end function

    void SaveData()
    {
        DataSet changes = this.ds.GetChanges();
        if (changes != null)
        {
            //Data has changes. 
            //use update method in the adapter. it should update your datasource
            int updatedRows = this.dAdapter.Update(changes);
            this.ds.AcceptChanges();
        }
    }// end function

解决方案

Well Abeer. there are really many ways to work with data and in a lot of times it is a developer preference to work one way or another. From your question, I can see that might be new to working with ADO.NET so I would suggest you do some reading on working with data in .NET (DataTables, DataSets, DataGrids, DataAdapters, Data Binding, ... etc)

I think (from my short experience) the simplest way to read and write data from and to data source is to use a DataAdapter to read the data into a dataset and then set the dataset as the datasource for a gridview where a user can edit. to write back the changes, just use the update method in the adapter. here is a sample code

DataSet ds;
OleDbDataAdapter dataAdapter;
void ReadData()
    {
        this.ds = new DataSet();
        string connString = "CONNICTION STRING GOES HERE";
        this.dataAdapter = new OleDbDataAdapter("QUERY GOES HERE", connString);
        this.dataAdapter.Fill(this.ds, "TABLE1");
        this.ds.AcceptChanges();
        //set the table as the datasource for the grid in order to show that data in the grid
        this.dataGridView1.DataSource = ds.DefaultViewManager;
    }

    void SaveData()
    {
        DataSet changes = this.ds.GetChanges();
        if (changes != null)
        {
            //Data has changes. 
            //use update method in the adapter. it should update your datasource
            int updatedRows = this.dataAdapter.Update(changes);
            this.ds.AcceptChanges();
        }
    }

see the following as it gives a longer sample about using DataGrid control

http://www.codeproject.com/Articles/9986/Using-the-DataGrid-Control

and for some intro on DataTable, DataSets and DataGrids see

http://www.codeproject.com/Articles/6179/A-Practical-Guide-to-NET-DataTables-DataSets-and-D

这篇关于在C#中使用Datagrid的数据库更新的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆