DataGridView 出错了! 大家帮忙我! 在线等待...... 索引超出范围。必须为非负值并小于集合大小。参数名: index 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 DG_jadwal[0,0].Value可能有问题!! int row = DG_jadwal.Rows.Count; DG_jadwal.Rows.Add(); DG_jadwal.Rows[row].Cells[0].Value = row+1; DG_jadwal.Rows[row].Cells[1].Value =tamakturi; DG_jadwal.Rows[row].Cells[2].Value = tamakName; DG_jadwal.Rows[row].Cells[3].Value =tamaksani; DG_jadwal.Rows[row].Cells[4].Value = bahasi; DG_jadwal.Rows[row].Cells[5].Value = Jamipuli; DG_jadwal.Rows[row].Cells[6].Value = ""; DG_jadwal.Rows[row].Cells["Oqurux"].Value = "X";MessageBox.Show(DG_jadwal[0,0].Value.ToString()); // 就在这儿出错了 你在调试方式下,查看下GridView里有没有数据,估计是你没有把数据加到里面。可以看它的DataSource的DataSet是否有数据。如果有数据用DataGridView1.Rows[0].Cells[0].Value.ToString().Trim()试试 我不是数据源添加数据的,我从TEXTBOX的数据添加到它, private void textBox1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyValue== 13) { // try // { if (TB_maxgulat.Text.Trim().Substring(0, 1) == "/") //桌子号码 { CB_ustal.Text= TB_maxgulat.Text.Trim().Substring(1, TB_maxgulat.Text.Trim().IndexOf("*") - 1).Trim(); CB_adam.Text= TB_maxgulat.Text.Trim().Substring(TB_maxgulat.Text.Trim().IndexOf("*") + 1).Trim(); } else if (TB_maxgulat.Text.Trim().Substring(0, 1).Trim() == "0") //结帐 { TB_maxgulat.Text = ""; hesawat hs = new hesawat(Convert.ToInt16(Umumisommsi)); hs.ShowDialog(); JieZhang(); } else //买饭 { if (ustal != "") //给指定的桌子号码买饭 { tamak = TB_maxgulat.Text.Trim().Substring(0, TB_maxgulat.Text.Trim().IndexOf("*")).Trim(); tamaksani = TB_maxgulat.Text.Trim().Substring(TB_maxgulat.Text.Trim().IndexOf("*") + 1).Trim(); ustal_setix(); } else //打包买饭 { tamak = TB_maxgulat.Text.Trim().Substring(0, TB_maxgulat.Text.Trim().IndexOf("*")).Trim(); tamaksani = TB_maxgulat.Text.Trim().Substring(TB_maxgulat.Text.Trim().IndexOf("*") + 1, TB_maxgulat.Text.Trim().IndexOf("+") - TB_maxgulat.Text.Trim().IndexOf("*")-1).Trim(); this.Text = tamak + " " + tamaksani; daBao_setix(); } } TB_maxgulat.Text = ""; // } // catch(Exception ex) // { // MessageBox.Show(ex.Message); // TB_maxgulat.Text = ""; // } } } void ustal_setix() //桌子买饭 { for (int i = 0; i < tizimlik.Rows.Count; i++) { if (tizimlik.Rows[i]["BH"].ToString() == tamak) { bahasi =Convert.ToDouble(tizimlik.Rows[i]["Bahasi"].ToString()); tamakName=tizimlik.Rows[i]["Name"].ToString(); tamakturi = tizimlik.Rows[i]["TurAyrimisi"].ToString(); } } Jamipuli = Convert.ToDouble(tamaksani) * bahasi; int row = DG_jadwal.Rows.Count; DG_jadwal.Rows.Add(); DG_jadwal.Rows[row].Cells[0].Value = row+1; DG_jadwal.Rows[row].Cells[1].Value =tamakturi; DG_jadwal.Rows[row].Cells[2].Value = tamakName; DG_jadwal.Rows[row].Cells[3].Value =tamaksani; DG_jadwal.Rows[row].Cells[4].Value = bahasi; DG_jadwal.Rows[row].Cells[5].Value = Jamipuli; DG_jadwal.Rows[row].Cells[6].Value = ""; DG_jadwal.Rows[row].Cells["Oqurux"].Value = "X"; zongfei(); } void daBao_setix() { ustal_setix(); } void zongfei() { Umumisommsi = 0; if (DG_jadwal.Rows.Count > 0) { for(int i=0;i<DG_jadwal.Rows.Count;i++) { Umumisommsi=Umumisommsi+ Convert.ToDouble(DG_jadwal.Rows[i].Cells[5].Value); } } TB_sommisi.Text = Umumisommsi.ToString(); } private void LS_tizimlik_SelectedIndexChanged(object sender, EventArgs e) { try { // tamak = LS_tizimlik.Items[LS_tizimlik.SelectedIndex].ToString().Remove(LS_tizimlik.Items[LS_tizimlik.SelectedIndex].ToString().IndexOf(".")); } catch { } } private void LB_turi_SelectedIndexChanged_1(object sender, EventArgs e) { try { // LS_tizimlik.Items.Clear(); // show_tizimlik(LB_turi.SelectedItem.ToString()); } catch { } } private void DG_tizimlik2_CellClick(object sender, DataGridViewCellEventArgs e) { } private void BT_hesabat_Click(object sender, EventArgs e) { MessageBox.Show(TalonNum()); } public void JieZhang() { MessageBox.Show(DG_jadwal[0,0].Value.ToString()); /* string Ustal_num = ustal; string Adam_sani = adam; string Tur_ismi =DG_jadwal.Rows[0].Cells[1].Value.ToString(); string Tamak_ismi = DG_jadwal.Rows[0].Cells[2].Value.ToString(); string Tamak_sani = DG_jadwal.Rows[0].Cells[3].Value.ToString(); string tamak_Bahasi = DG_jadwal.Rows[0].Cells[4].Value.ToString(); string Jamisi = DG_jadwal.Rows[0].Cells[5].Value.ToString(); string Izahati = DG_jadwal.Rows[0].Cells[6].Value.ToString(); string date = DateTime.Now.ToShortDateString(); string time = DateTime.Now.ToShortTimeString(); string tolonNum = TalonNum(); string Mulaimi = CB_mulazim.Text.Trim(); MessageBox.Show(Ustal_num+"\n"+Adam_sani+"\n"+Tur_ismi+"\n"+Tamak_ismi+"\n"+Tamak_sani+"\n"+ tamak_Bahasi+"\n"+Jamisi+"\n"+Izahati+"\n"+date+"\n"+time+"\n"+ tolonNum+"\n"+Mulaimi);*/ } string TalonNum() { string retData = ""; int row = md.GetRecordCount("Tbl_Setix"); DataTable setix = md.GetDataTable("select [id] from [Tbl_setix]"); int num = Convert.ToInt16(setix.Rows[row-1][0])+1; if (num.ToString().Length == 1) { retData= DateTime.Now.ToShortDateString().Substring(2).Replace("-","")+"000"+num.ToString(); } else if (num.ToString().Length == 2) { retData = DateTime.Now.ToShortDateString().Substring(2).Replace("-", "") + "00" + num.ToString(); } else if (num.ToString().Length == 3) { retData = DateTime.Now.ToShortDateString().Substring(2).Replace("-", "") + "0" + num.ToString(); } else if (num.ToString().Length == 4) { retData = DateTime.Now.ToShortDateString().Substring(2).Replace("-", "") + num.ToString(); } return retData; } }}[/code] DataRow dr加下试试DG_jadwal.Rows.Add(dr); 我觉得你的代码有点乱,不知你是在添加前调用MessageBox.Show(DG_jadwal[0,0].Value.ToString()); 还是在添加后呢?还是设断点调试一下吧,你会很快发现出错点的。还在就是在你出错的地方用try{} catch{}看下到底是什么样的错误。 Cells[0]这个里面不用索引,用column的name属性值试试。要用双引号如:name:colum1则写成:cells["colum1"] 下拉框啊 这样啊DG_jadwal.Rows[0][列].Value = row+1; 我的 DataGridView 上面图所示! (RightToLeft=true)当然[0,0]处有记录(自己添加的) 我要把这些数据存到数据库里,可是程序读不取来了。我试了好多种办法,可是都一样出错! 用户名乱码问题 菜鸟提问,希望高手解答一个关于c#运行机制的问题 要实现多文挡界面(MDI)的子窗体页面之间跳转,怎么实现?有人做过吗? 有什么办法可以抓取远程网页上的内容? 框架问题,居中显示这个框架,框架里包含3行 top.aspx,mail.aspx,foot.aspx怎么写呀,急呀 有写过系统上线时的数据导入工具的朋友请进! 请问如何在填充datagrid时,根据需要调整列标题,和列宽! 如何改English为汉字? 关于C#Windows CE 的几个问题 如何打印DataGrid中的内容啊? 数据库记录怎么整合阿? C#控制路由器
DG_jadwal.Rows.Add();
DG_jadwal.Rows[row].Cells[0].Value = row+1;
DG_jadwal.Rows[row].Cells[1].Value =tamakturi;
DG_jadwal.Rows[row].Cells[2].Value = tamakName;
DG_jadwal.Rows[row].Cells[3].Value =tamaksani;
DG_jadwal.Rows[row].Cells[4].Value = bahasi;
DG_jadwal.Rows[row].Cells[5].Value = Jamipuli;
DG_jadwal.Rows[row].Cells[6].Value = "";
DG_jadwal.Rows[row].Cells["Oqurux"].Value = "X";MessageBox.Show(DG_jadwal[0,0].Value.ToString());
// 就在这儿出错了
可以看它的DataSource的DataSet是否有数据。
如果有数据用DataGridView1.Rows[0].Cells[0].Value.ToString().Trim()试试
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue== 13)
{
// try
// {
if (TB_maxgulat.Text.Trim().Substring(0, 1) == "/") //桌子号码
{
CB_ustal.Text= TB_maxgulat.Text.Trim().Substring(1, TB_maxgulat.Text.Trim().IndexOf("*") - 1).Trim();
CB_adam.Text= TB_maxgulat.Text.Trim().Substring(TB_maxgulat.Text.Trim().IndexOf("*") + 1).Trim();
}
else if (TB_maxgulat.Text.Trim().Substring(0, 1).Trim() == "0") //结帐
{
TB_maxgulat.Text = "";
hesawat hs = new hesawat(Convert.ToInt16(Umumisommsi));
hs.ShowDialog();
JieZhang();
}
else //买饭
{
if (ustal != "") //给指定的桌子号码买饭
{
tamak = TB_maxgulat.Text.Trim().Substring(0, TB_maxgulat.Text.Trim().IndexOf("*")).Trim();
tamaksani = TB_maxgulat.Text.Trim().Substring(TB_maxgulat.Text.Trim().IndexOf("*") + 1).Trim();
ustal_setix();
}
else //打包买饭
{
tamak = TB_maxgulat.Text.Trim().Substring(0, TB_maxgulat.Text.Trim().IndexOf("*")).Trim();
tamaksani = TB_maxgulat.Text.Trim().Substring(TB_maxgulat.Text.Trim().IndexOf("*") + 1, TB_maxgulat.Text.Trim().IndexOf("+") - TB_maxgulat.Text.Trim().IndexOf("*")-1).Trim();
this.Text = tamak + " " + tamaksani;
daBao_setix();
}
} TB_maxgulat.Text = "";
// }
// catch(Exception ex)
// {
// MessageBox.Show(ex.Message);
// TB_maxgulat.Text = "";
// }
}
} void ustal_setix() //桌子买饭
{
for (int i = 0; i < tizimlik.Rows.Count; i++)
{
if (tizimlik.Rows[i]["BH"].ToString() == tamak)
{
bahasi =Convert.ToDouble(tizimlik.Rows[i]["Bahasi"].ToString());
tamakName=tizimlik.Rows[i]["Name"].ToString();
tamakturi = tizimlik.Rows[i]["TurAyrimisi"].ToString();
}
}
Jamipuli = Convert.ToDouble(tamaksani) * bahasi; int row = DG_jadwal.Rows.Count;
DG_jadwal.Rows.Add();
DG_jadwal.Rows[row].Cells[0].Value = row+1;
DG_jadwal.Rows[row].Cells[1].Value =tamakturi;
DG_jadwal.Rows[row].Cells[2].Value = tamakName;
DG_jadwal.Rows[row].Cells[3].Value =tamaksani;
DG_jadwal.Rows[row].Cells[4].Value = bahasi;
DG_jadwal.Rows[row].Cells[5].Value = Jamipuli;
DG_jadwal.Rows[row].Cells[6].Value = "";
DG_jadwal.Rows[row].Cells["Oqurux"].Value = "X"; zongfei();
} void daBao_setix()
{
ustal_setix();
} void zongfei()
{
Umumisommsi = 0;
if (DG_jadwal.Rows.Count > 0)
{
for(int i=0;i<DG_jadwal.Rows.Count;i++)
{
Umumisommsi=Umumisommsi+ Convert.ToDouble(DG_jadwal.Rows[i].Cells[5].Value);
}
} TB_sommisi.Text = Umumisommsi.ToString();
}
private void LS_tizimlik_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
// tamak = LS_tizimlik.Items[LS_tizimlik.SelectedIndex].ToString().Remove(LS_tizimlik.Items[LS_tizimlik.SelectedIndex].ToString().IndexOf("."));
}
catch { }
} private void LB_turi_SelectedIndexChanged_1(object sender, EventArgs e)
{
try
{
// LS_tizimlik.Items.Clear();
// show_tizimlik(LB_turi.SelectedItem.ToString());
}
catch { }
} private void DG_tizimlik2_CellClick(object sender, DataGridViewCellEventArgs e)
{ } private void BT_hesabat_Click(object sender, EventArgs e)
{
MessageBox.Show(TalonNum());
} public void JieZhang()
{
MessageBox.Show(DG_jadwal[0,0].Value.ToString());
/*
string Ustal_num = ustal;
string Adam_sani = adam;
string Tur_ismi =DG_jadwal.Rows[0].Cells[1].Value.ToString();
string Tamak_ismi = DG_jadwal.Rows[0].Cells[2].Value.ToString();
string Tamak_sani = DG_jadwal.Rows[0].Cells[3].Value.ToString();
string tamak_Bahasi = DG_jadwal.Rows[0].Cells[4].Value.ToString();
string Jamisi = DG_jadwal.Rows[0].Cells[5].Value.ToString();
string Izahati = DG_jadwal.Rows[0].Cells[6].Value.ToString();
string date = DateTime.Now.ToShortDateString();
string time = DateTime.Now.ToShortTimeString();
string tolonNum = TalonNum();
string Mulaimi = CB_mulazim.Text.Trim(); MessageBox.Show(Ustal_num+"\n"+Adam_sani+"\n"+Tur_ismi+"\n"+Tamak_ismi+"\n"+Tamak_sani+"\n"+
tamak_Bahasi+"\n"+Jamisi+"\n"+Izahati+"\n"+date+"\n"+time+"\n"+
tolonNum+"\n"+Mulaimi);*/ } string TalonNum()
{
string retData = "";
int row = md.GetRecordCount("Tbl_Setix");
DataTable setix = md.GetDataTable("select [id] from [Tbl_setix]");
int num = Convert.ToInt16(setix.Rows[row-1][0])+1;
if (num.ToString().Length == 1)
{
retData= DateTime.Now.ToShortDateString().Substring(2).Replace("-","")+"000"+num.ToString();
}
else if (num.ToString().Length == 2)
{
retData = DateTime.Now.ToShortDateString().Substring(2).Replace("-", "") + "00" + num.ToString();
}
else if (num.ToString().Length == 3)
{
retData = DateTime.Now.ToShortDateString().Substring(2).Replace("-", "") + "0" + num.ToString();
}
else if (num.ToString().Length == 4)
{
retData = DateTime.Now.ToShortDateString().Substring(2).Replace("-", "") + num.ToString();
} return retData;
}
}
}[/code]
我觉得你的代码有点乱,不知你是在添加前调用MessageBox.Show(DG_jadwal[0,0].Value.ToString());
还是在添加后呢?还是设断点调试一下吧,你会很快发现出错点的。
还在就是在你出错的地方用try{} catch{}看下到底是什么样的错误。
这个里面不用索引,用column的name属性值试试。要用双引号
如:name:colum1
则写成:cells["colum1"]
DG_jadwal.Rows[0][列].Value = row+1;
当然[0,0]处有记录(自己添加的) 我要把这些数据存到数据库里,可是程序读不取来了。
我试了好多种办法,可是都一样出错!