我用的dataset.Tables["select_test"].Rows[i]["columeName"]来访问的
可程序说表中的第一行就已经空了
在填充dataset时,我作了测试,表不为空,但在子窗体使用表时就空了
可程序说表中的第一行就已经空了
在填充dataset时,我作了测试,表不为空,但在子窗体使用表时就空了
解决方案 »
- 多线程蜘蛛程序提示如下异常,请问各位高手,这是什么原因?
- 急急急!!!vs窗体加载时界面控件消失怎么解决???
- 有谁编辑过cab文件,请帮忙!
- 请问如何使用 LINQ 对 DataTable 分组查询?
- 请教:c#做了个报表,但在进入crystalReportViewer界面时按“确定”,没有出格式报表。而是弹出“数据库登陆”提示框。???
- 求一段C#代码 能够修改本机时间
- 数据库转换
- 我想在IE中实现像在线杀毒那样功能的开发技术是什么?DCOM?
- insert into 语法错误 找不出哪里错了 帮忙啊!!!
- Windows Form里面的DataGrid支持双击事件吗?
- 如何将datatable 导入 oracle的一个游标里?
- 谁能帮我把下面的C++改成C#,万分感谢
DataTable judgeTable = new DataTable("judge_test");
SqlConnection conn = new SqlConnection(TestSettingValue.connection);
SqlDataAdapter adapter = new SqlDataAdapter("select * from testSetting", conn);
conn.Open();
adapter.Fill(TestResult.datSet, "testSetting");
adapter.SelectCommand = new SqlCommand("select top " + TestSettingValue.choiceNum + " number,content,keya,keyb,keyc,keyd,answer from select_test ORDER BY NEWID()", conn);
adapter.Fill(selectTable);
adapter.SelectCommand = new SqlCommand("select top " + TestSettingValue.judgeNum + " number, content, answer from judge_test ORDER BY NEWID()", conn);
adapter.Fill(judgeTable);
TestResult.datSet.Tables.Add(selectTable);
TestResult.datSet.Tables.Add(judgeTable);
if (TestResult.datSet.Tables["select_test"].Rows.Count != TestSettingValue.choiceNum)
{
MessageBox.Show("数据填充不完整!");
return;
}
conn.Close();
上面这一段是在MdiForm父窗体中执行加载表到datset,正确加载了
可在调用子窗体时出错
下面是子窗体加载时判断dataset中表内容时总说表为0
private void ChoiceForm_Load(object sender, EventArgs e)
{
if (TestResult.datSet.Tables["select_test"].Rows.Count == 0)
{
MessageBox.Show("数据填充不完整!");
return;
}
this.manage = this.BindingContext[TestResult.datSet, "select_test"];
this.Check();
table =TestResult.datSet.Tables["select_test"];
this.CoiceRightAnswer();
this.DataBindControls();
}
{
……
private void InitControlInfo()
{
try
{
this._mConn.ConnectionString = ConStrr;
string _sqlstrr = "select * from PsnInfo";
this._mDa = new SqlDataAdapter(_sqlstrr,this._mConn);
this._mDa.Fill(dbclass.DS,"PersonInfo");
_ds = _mDs.Copy();
}
catch(SqlException ex)
{
MessageBox.Show(ex.Message);
return false;
}
}
private void button1_Click(object sender, System.EventArgs e)
{
Form2 f2 = new Form2();
f2.Show();
this.Hide();
}
}
}
public class dbclass
{
public static DataSet DS = new DataSet();
}
…………
public class Form2 : System.Windows.Forms.Form
{
…………
private void Form2_Load(object sender, System.EventArgs e)
{
this.dataGrid1.DataSource = dbclass.DS.Tables[0];
}}
{
this._mConn.ConnectionString = ConStrr;
string _sqlstrr = "select * from PsnInfo";
this._mDa = new SqlDataAdapter(_sqlstrr,this._mConn);
this._mDa.Fill(dbclass.DS,"PersonInfo");
}
catch(SqlException ex)
{
MessageBox.Show(ex.Message);
}
DS里面的表名称就知道了 呵呵
foreach (DataTable dt in TestResult.datSet.Tables)
MessageBox.Show(dt.TableName);
我在别的窗体调用表绑定数据就可以,为什么就在这个窗体不行了,实在郁闷呀
这种情况太邪门了
谢谢你了,我再仔细找找原因吧