c#窗体设计中怎样设置成如下形式?使用什么控件?怎样调用数据库的数据进行填充?

如题所述

首先最下面的FrmMain_Load(...)是载入窗体时的初始化
先new一个publicclass()对象
接下来调用此对象的GetDataSet()方法
来看GetDataSet()方法
新建一个DataSet,用来存放从数据库获得的记录,Dataset可以在关闭数据库连接后使用;
Sqldataadapter,从名字上看适配器的意识,类是我们用的笔记本的交流电适配器,充当一个中间角色,读取数据库中的数据进行一些处理,把它可以存入到dataset中,da.fill()方法就是把数据填充到dataset中,后面的是异常处理,然后关闭必要的连接,把得到的dataset数据返回。
上面的getDataRow()方法跟getdataset差不多他只是返回dataset中的第一个表格的第一行数据,dataset中的数据都是以集的形式存在的,可以看成表。

再回到load()函数,判断dataset中第一个结果集的行数是否大于0,也就相当于里面有没有数据,有的话把它显示到datagridview中

中间还有一个ExecuteSQL()方法,新建一个连接,打开,执行Sqlcommand,
用 cmd.ExecuteNonQuery();但是你写的sql命令式select,返回结果的,要用SqlDataReader read=cmd.ExecuteReader();
然后根据sqldatareader就可以读取里面的信息,这跟上面的采用dataset是另一种方法,根据你的需要选择。

至于根据连接字符串连接数据库的原理,这个是驱动程序的工作,我们无法知道,一种技术,微软不会告诉你的。

至于修改更新,一种方法直接使用update或则delete的sql语句,然后执行ExecuteNonQuery()或则相应的方法,还有一种就是用dataset,首先读入一些数据,形成一张“表 ”记录,你可以直接把它看成是二维数组,把要改的数据赋给n行m列的单元格,如set.table[0].rows[n][m]="xxx";赋值完后还要执行sqlDataadApter实例的update()方法,
!!!!注意在做这些之前还要新建一个SqlCommandBuilder类的实例
如SqlCommandBuilder build=new SqlCommandBuilder(adapter)//以SqlDataAdapter的实例作为参数,这样基本的更新删去就搞定了,希望对你有所帮助,我也正在学习当中...
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-24
可以用Repeater或者DataList控件做的。
至于要获取数据,你只要指定DataSource进行绑定就好了。
你可以百度搜索一下B2C,找个源代码拿来看看就知道了。
如果是用窗体编程的话可以改改gridView控件来变相的实现追问

能不能给个代码?不知道怎么改gridview

追答

你只是功能要做成那样子,就不要去改gridview,直接用就好了。
给你一个例子:
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Collections;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
using System.Reflection;
namespace ConnDB1
{
class PublicClass
{
//设置连接数据库的字符串
public string strConn = "server=.;database=Northwind;uid=sa;pwd=;";
public DataRow GetDataRow(string sql)
{
DataSet ds = new DataSet();
SqlConnection con = new SqlConnection(strConn);
SqlDataAdapter da = new SqlDataAdapter(sql, con);
try
{
da.Fill(ds);
if (ds.Tables[0].Rows.Count 0)
{
dataGridView1.DataSource = ds.Tables[0];
}
}

本回答被提问者和网友采纳
第2个回答  2011-08-24
需要使用datagridview 重绘每一行样式。 在绘制事件中取数据源中每一行的数据 进行如图样式的绘制。
需要用到 GDI GDI+;

我看楼主问的是WINFORM 上边说的都是ASP.NET 我回答的也是WINFORM的实现 不知道是不是喽..追问

嗯,对啊。。。我就是想知道winform里如何实现。。。这个很复杂吗?能不能给点源代码?

第3个回答  2011-08-24
DataList控件。
第4个回答  2011-08-24
这个用asp.net可以做
用datalist控件
相似回答