如何调用 类中的datatable?
首先建了一个config类,里面声明了一个datatable.
form2继承自form1.我想在form2的代码里调用,config类中的datatable,并给datatable加上一新行.
怎么做呢?请教各位老师.
首先建了一个config类,里面声明了一个datatable.
form2继承自form1.我想在form2的代码里调用,config类中的datatable,并给datatable加上一新行.
怎么做呢?请教各位老师.
解决方案 »
- 仓库管理系统,大概有哪些功能,我感觉用excel就可以实现了它的功能了。所以,大家帮我看看,想做个仓库管理系统。大概需要增加哪些功能??
- 在WinForm标题栏自定义了按钮却无法正常显示,求助!
- 关于sqldataadapter.update()的问题
- dd
- 分数不够了,付200元现金求解,请同志们支持一下啊
- **再发:解决了就请你吃饭 C#2005写的WinForm程序,打包安装完后无法运行?
- C#中关于数据库操作的问题
- 如何动态生成一个Exe可执行文件?
- 急急急,DataGrid中模板列绑入一 Button按钮,现怎样做到点击此按钮可选中本行,且又可引发一个OnClick事件呢!!!
- 现在需要向数据库中插入百万条随机记录供性能测试用,有没有好办法可以快速实现?
- 左边是一个treeview 右边我想根据在用户在treeview中选择不同的结点而显示不同的窗口(不是内容哦)!
- winform如何关闭窗口
{
private DataTable dt=new DateTalbe();
public DataTable DT//注意是只读的属性,如果要编写可写的,还要加上set
{
get{return dt;}
}
}
public DataTable DT
{
get
{
return _dt;
}
set
{
_dt = value;
}
}在form2中config config = new config();
config.DT.Rows.Add(datarow);这样就可以给Datatable加一行了~
需要这个培训视频的朋友请联系 QQ 936652114
class Config
{
public Config(DataGridView xx)
{
yy = xx;
}
private DataGridView yy;
private DataTable dt = new DataTable();
public DataTable DT
{
get { return dt; }
set { dt = value; }
}
public void LoadFromFile()
{
dt = new DataTable();
dt.Columns.Add("姓名");
dt.Columns.Add("性别");
FileInfo dataFile = new FileInfo("学生.txt");
FileStream fs = dataFile.OpenRead();
StreamReader sr = dataFile.OpenText();
string s = sr.ReadToEnd();
int location = s.IndexOf("2");
sr.BaseStream.Position = location;
char[] seperator = new char[] { ' ' };
while (!sr.EndOfStream)
{
string data = sr.ReadLine();
string[] sa = data.Trim().Split(seperator, StringSplitOptions.RemoveEmptyEntries);
DataRow dr = dt.NewRow(); for (int i = 0; i < sa.Length; i++)
{
dr[i] += sa[i];
}
dt.Rows.Add(dr); }
yy.DataSource = dt;
sr.Close();
sr.Dispose();
}
}
在form2的load事件中调用LoadFromFile() 方法,加载数据到form2上的dataGridView1;
然后,在form2的button1_Click事件中,给上面的那个表dt,添加一新行,
Config config = new Config(this.dataGridView1 ); //配制类
DataRow xinhang = config.DT.NewRow();
xinhang["姓名"] = textBox1.Text; 到这儿就不行了????
xinhang["性别"] = textBox2.Text;
config.DT.Rows.Add(xinhang);
可老是编译不过,提示说,列“姓名”不属于表 。并不能把新行加上去.
不知是为啥,恳请老师们帮忙呀.
dt.Columns.Add("姓名");
dt.Columns.Add("性别"); 把列的定义放入构造函数中。
class Config
{
public Config(DataGridView xx)
{
yy = xx;
//==============放到这里
dt = new DataTable();
dt.Columns.Add("姓名");
dt.Columns.Add("性别");
}
private DataGridView yy;
private DataTable dt = new DataTable();
public DataTable DT
{
get { return dt; }
set { dt = value; }
}
public void LoadFromFile()
{
/*
dt = new DataTable();
dt.Columns.Add("姓名");
dt.Columns.Add("性别"); */
FileInfo dataFile = new FileInfo("学生.txt");
FileStream fs = dataFile.OpenRead();
StreamReader sr = dataFile.OpenText();
string s = sr.ReadToEnd();
int location = s.IndexOf("2");
sr.BaseStream.Position = location;
char[] seperator = new char[] { ' ' };
while (!sr.EndOfStream)
{
string data = sr.ReadLine();
string[] sa = data.Trim().Split(seperator, StringSplitOptions.RemoveEmptyEntries);
DataRow dr = dt.NewRow(); for (int i = 0; i < sa.Length; i++)
{
dr[i] += sa[i];
}
dt.Rows.Add(dr); }
yy.DataSource = dt;
sr.Close();
sr.Dispose();
}
}
这是你现在的构造函数: public Config(DataGridView xx)
{
yy = xx;
} 改成: public Config(DataGridView xx)
{
yy = xx;
dt = new DataTable();
dt.Columns.Add("姓名");
dt.Columns.Add("性别");
}
LoadFromFile方法中把开头的三条语句去掉。
Config config = new Config(this.dataGridView1 ); //配制类
到这里的时候,还是加不上,除非再调用 LoadFromFile()方法,
然后,
DataRow xinhang = config.DT.NewRow();
xinhang["姓名"] = textBox1.Text;
xinhang["性别"] = textBox2.Text;
config.DT.Rows.Add(xinhang);
可是我在form2的load事件中已调用 LoadFromFile()方法,加载过一次了,
也就是form2上的datagridview中已经有数据了.
难道说为了加一行数据再重新再调用 LoadFromFile()方法,
加载一次数据?
DataRow xinhang = config.DT.NewRow();
xinhang["姓名"] = textBox1.Text;
xinhang["性别"] = textBox2.Text;
config.DT.Rows.Add(xinhang); 郁闷!郁闷!
debug文件夹下有个"学生.txt"文件,内容是
2 李阳男
3 王菲女
这是类中的代码:
namespace _11
{
class Config
{
public Config(DataGridView xx)
{
yy = xx;
dt = new DataTable();
dt.Columns.Add("姓名");
dt.Columns.Add("性别");
}
private DataGridView yy;
private DataTable dt ;
public DataTable DT
{
get { return dt; }
set { dt = value; }
}
public void LoadFromFile()
{
FileInfo dataFile = new FileInfo("学生.txt");
FileStream fs = dataFile.OpenRead();
StreamReader sr = dataFile.OpenText();
string s = sr.ReadToEnd();
int location = s.IndexOf("2");
sr.BaseStream.Position = location;
char[] seperator = new char[] { ' ' };
while (!sr.EndOfStream)
{
string data = sr.ReadLine();
string[] sa = data.Trim().Split(seperator, StringSplitOptions.RemoveEmptyEntries);
DataRow dr = dt.NewRow(); for (int i = 0; i < sa.Length; i++)
{
dr[i] += sa[i]; }
dt.Rows.Add(dr); }
yy.DataSource = dt;
sr.Close();
sr.Dispose();
}
}
}
这是form1中的代码
namespace _11
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Config config = new Config(this .dataGridView1 );
DataTable dt = config.DT;
DataRow xinhang = dt.NewRow(); //这是要增加的行
xinhang["姓名"] = "陈中"; //到这里就通不过了.
xinhang["性别"] = "男";
dt.Rows.Add(xinhang);
} private void Form1_Load(object sender, EventArgs e)
{
Config config = new Config(this.dataGridView1);
config . LoadFromFile();
}
}
}请老师帮帮.
namespace _11
{
public partial class Form1 : Form
{
Config config;//加这一句
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//Config config = new Config(this .dataGridView1 ); //这一句不要了
DataTable dt = config.DT;
DataRow xinhang = dt.NewRow(); //这是要增加的行
xinhang["姓名"] = "陈中"; //到这里就通不过了.
xinhang["性别"] = "男";
dt.Rows.Add(xinhang);
} private void Form1_Load(object sender, EventArgs e)
{
config = new Config(this.dataGridView1); //前面的声明去掉
config . LoadFromFile();
}
}
}