C#中如何实现数据源的添加和删除

我用的C# 和SQL做一个数据库管理,但现在做出来能显示数据库中的内容就是无法实现对数据源的添加和删除,BindingNavigator和DataGridView 如何才能实现对数据源的添加和删除并成功显示出来

1.参考下列C# 代码调用MYSQL 数据库,数据库用的是本地服务器(MySql):
2.设定全局变量:
MySqlConnection conn;
MySqlDataAdapter adapter;
MySqlTransaction trans;
3. // 数据库联接
private System.Data.DataTable dbconn(string strSql)
{
string strconn = "host=localhost;database=test;user id=root;password=";
conn = new MySqlConnection();
conn.ConnectionString = strconn;
conn.Open();
this.adapter = new MySqlDataAdapter(strSql, conn);
System.Data.DataTable dtSelect = new System.Data.DataTable();
int rnt=this.adapter.Fill(dtSelect);
conn.Close();
return dtSelect;

}
4. //设定DataGridView的样式
private void setDgStyle()
{
this.dgselect.Columns.Clear();
DataGridViewCheckBoxColumn colDel = new DataGridViewCheckBoxColumn();
colDel.DataPropertyName = "Del";
colDel.Name = "Del";
colDel.Selected = false;
colDel.FalseValue = "0";
colDel.TrueValue = "1";
colDel.Width = 40;
colDel.SortMode = DataGridViewColumnSortMode.NotSortable;
colDel.HeaderText = "删除";
colDel.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
colDel.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
this.dgselect.Columns.Insert(0, colDel);
DataGridViewTextBoxColumn colID = new DataGridViewTextBoxColumn();
colID.DataPropertyName = "ProductsSpecID";
colID.Name = "ProductsSpecID";
colID.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
colID.HeaderText = "产品规格ID";
colID.Width = 160;
this.dgselect.Columns.Insert(1, colID);
DataGridViewTextBoxColumn colNM = new DataGridViewTextBoxColumn();
colNM.DataPropertyName = "ProductsSpec";
colNM.Name = "ProductsSpec";
colNM.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
colNM.HeaderText = "产品规格名称";
colNM.Width = 160;
this.dgselect.Columns.Insert(2, colNM);
DataGridViewTextBoxColumn colUnit = new DataGridViewTextBoxColumn();
colUnit.DataPropertyName = "ProductsSpecUnit";
colUnit.Name = "ProductsSpecUnit";
colUnit.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
colUnit.HeaderText = "产品规格单位";
colUnit.Width = 180;
this.dgselect.Columns.Insert(3, colUnit);
DataGridViewTextBoxColumn colPID = new DataGridViewTextBoxColumn();
colPID.DataPropertyName = "ProductsID";
colPID.Name = "ProductsID";
colPID.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
colPID.HeaderText = "产品ID";
colPID.Width = 140;
this.dgselect.Columns.Insert(4, colPID);
DataGridViewButtonColumn colButton = new DataGridViewButtonColumn();
colButton.DataPropertyName = "colSearch";
colButton.Name = "colSearch";
colButton.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
colButton.HeaderText = "Button";
colButton.Width = 80;
this.dgselect.Columns.Insert(5, colButton);
this.dgselect.RowHeadersWidth = 15;
this.dgselect.ColumnHeadersDefaultCellStyle.Font=new System.Drawing.Font("宋体",14);

}
5. //修改数据,并将数据提交到数据库
private Boolean dbUpdate()
{
string strSql = "select ProductsSpecID,ProductsSpec,ProductsSpecUnit,ProductsID from tbl_product_detail_master";
System.Data.DataTable dtUpdate = new System.Data.DataTable();
dtUpdate = this.dbconn(strSql);
dtUpdate.Rows.Clear();
System.Data.DataTable dtShow = new System.Data.DataTable();
//dtShow = (DataTable)this.bindSource.DataSource;
dtShow = (System.Data.DataTable)this.dgselect.DataSource;
int p1 = dtShow.Rows.Count;
// try
// {
for (int i = 0; i < dtShow.Rows.Count; i++)
{
DataRowState rowState=new DataRowState();
rowState=dtShow.Rows[i].RowState;
if (rowState==DataRowState.Added || rowState==DataRowState.Detached || rowState==DataRowState.Modified)
{
if (this.dgselect["Del", i].Value.ToString() == "1")
{
dtShow.Rows[i].Delete();
}
}
}

for (int i = 0; i < dtShow.Rows.Count; i++)
{
dtUpdate.ImportRow(dtShow.Rows[i]);
}
int num = dtUpdate.Rows.Count;
try
{
this.conn.Open();

trans = this.conn.BeginTransaction();
MySqlCommandBuilder CommandBuiler;
CommandBuiler = new MySqlCommandBuilder(this.adapter);
this.adapter.Update(dtUpdate);
trans.Commit();
this.conn.Close();
}
catch ( Exception ex)
{
MessageBox.Show(ex.Message.ToString());
trans.Rollback();
return false;
}
dtUpdate.AcceptChanges();
return true;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-09
直接拖表进来,就是一个Gridview,要是表有主键的话,增删改查只要启用就行了。不然对一个表进行操作很麻烦,也没必要,因为你做的是个系统,那么多表肯定有联系,必然有主键。
第2个回答  2013-09-09
DataGridView对数据源的添加和删除非常简单,。如果你有个保存修改的按钮,,在它的单击事件里面写上:public partial class ExamForm2 : Form
{
public ExamForm2()
{
InitializeComponent();
} private void ExamForm2_Load(object sender, EventArgs e)
{
loadInfo();
} DataSet ds = new DataSet();
SqlDataAdapter da = null; private void loadInfo()
{
string sql = string.Format("select id,nickName,sex,age from users order by id");
try
{
da = new SqlDataAdapter(sql, DBHelper.con);
da.Fill(ds, "users");
dgvUsers.DataSource = ds.Tables["users"];
}
catch (Exception)
{ throw;
}
finally
{
DBHelper.con.Close();
}
} private void button1_Click(object sender, EventArgs e) //修改保存事件
{
SqlCommandBuilder builder = new SqlCommandBuilder(da);
da.Update(ds.Tables["users"]);
}
}
第3个回答  2013-09-09
string str1="Data Source=.;Initial Catalog=Job;Integrated Security=true"; SqlConnection dbconnection = new SqlConnection(str1);dbconnection .Open();SqlCommand deletecommand = new SqlCommand();deletecommand.CommandText = " 删除记录的T-SQL语句";
deletecommand.Connection = dbconnection;deletecommand.ExecuteNonQuery();//以上为删除string sqlstring = "select 要显示的字段名 from 要显示的表名";
viewsda = new SqlDataAdapter(sqlstring, dbconnection);
viewds = new DataSet();
adapter.Fill(viewds,"viewinfor");
dataGridView1.DataSource = viewds;
dataGridView1.DataMember = "viewinfor";//以上为dataGridView内容显示。添加的方法和删除一样,只是T-SQL的内容不一样。
第4个回答  2013-09-09
insertcommand,deletecommand等几个方法里面写事件就行了。

C#中如何导入数据库
首先打开“数据“选择“添加新数据源”然后(数据库)下一步,(数据集)下一步,选择”新建连接“,依次选择服务器名,服务器验证方式,选择”选择或输入一个数据库名,添加刚刚新建的数据库,然后点击“测试连接”,看看数据库连接是否成功。成功后点“确定”回到“数据源配置向导”页面,将“连接字符...

C#中如何导入数据库
首先打开“数据“选择“添加新数据源”然后(数据库)下一步,(数据集)下一步,选择”新建连接“,依次选择服务器名,服务器验证方式,选择”选择或输入一个数据库名,添加刚刚新建的数据库,然后点击“测试连接”,看看数据库连接是否成功。成功后点“确定”回到“数据源配置向导”页面,将“连接字符...

C#如何修改数据库中的数据,进行加一操作
1、从dataset获取并修改数据:datatable dt=dataset.tables[0];datarow dr=dt.rows[0];dr["列名"]=值;2、作用:如果你不使用dataset模型,每次调用数据都得执行一次数据库连接,效率会很低的;此外控件绑定数据源,用的就是datatable或者dataset;如果你想批量修改数据库中的表数据,只要把dataset的...

c#中Winform控件的数据源的填充方式,也就是DataSource的类型有几种?
有两种方式,一种是直接绑定到数据源对象,另一种是绑定到BindingSource组件,将BindingSource的DataSource属性设置为一个列表,第二种方法更常用。下例查询SalesOrderHeader表中2001年8月8号以后的序列,使用CopyToDataTable方法从查询产生DataTable。并绑定到BindingSource。DataTable orders = ds.Tables["SalesO...

C#Winform的DataGridView:如何给表格控件绑定实体类的数据源
第一步是创建实体类,然后添加DataGridView控件至窗体。点击控件右上角的三角形图标,选择“添加项目源”,并将已创建的“Students”类绑定至控件。绑定后,DataGridView将自动生成标题列,对应于实体类中的属性,如“Name”、“Age”、“Score”等。接下来,进入编辑列阶段,可以调整列标题以更符合实际...

如何添加C#水晶报表的数据源
1、右键项目—添加信箱—选择CryStalin报表,点击确定—在弹出Crystal Reports库中,选择作为空白报表,单击确定—在水晶报表空白位置,鼠标右键,选择数据库\/数据库专家—在弹出的对话框中,在左侧的可用数据源中,展开项目数据,选择要添加的表,单击确定—最后,在字段资源管理器中,显示所有字段。

...C#怎么连接access数据库?实现数据库的添加、删除操作?
前台代码:<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnRowDeleting="GridView1_delete" > 后台代码: protected void GridView1_delete (object sender, GridViewDeleteEventArgs e) { …… } 注意加粗部分

怎样在web页面实现本地文件目录的显示,插入,删除啊?(用C#)
CreateDirectory(filepath),CreateSubdirectory(filepath),Exists(filepath),Directory.Move(filepath1,filepath2),Directory.MoveTo(filepath1,filepath2),Delete(filepath)来操作,关于列出文件系统一可以用Datalist,dataview等绑定你获取的文件系统的数据源.代码比较复杂,原理很简单,就不一一列出了.

C#中如何将ComBox控件中手动添加一行数据,ComBox之前已经指定list的数据...
在指定数据源后,无法直接修改COMBox的数据项,不过有两个办法可以做到你说的那样:1、直接修改List数据源,在其头部加入一个新的数据即可(一般都是这么做的)2、添加数据绑定的事件处理方法,然后判断是不是第一个元素,如果是的话,额外创建一个加入到头部(猜测可以这么做,不过没这么做过)...

C#如何删除Gridview中一行数据
定义一个 String 或者是 int 类型的数据 str,然后 str=DataGridView1.Rows[(int)TextBox1.Text].Cells[某一个列的索引].ToString()下面来就是编写Sql 语句 ,Delete from 表名 where 字段名=str 最后进行一下数据绑定就可以了!

相似回答