关于数据绑定的问题 我的数据库和控件的一些字段的TYPE是不一样的 我再点增加的时候总是报一个"指定的转换无效。"异常 然后我在显示之前又从新定义了一个空的DATASET 与控件的类型一样 可是还报这个异常 奇怪的是我的修改没有问题请教大家是怎么回事啊 谢谢大家了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我后边定义的那个dataSet的类型跟控件的一样 还是报这个错啊 已经转了 这是代码 int bt, et, adp; GridEditableItem editedItem = e.Item as GridEditableItem; //得到当前编辑行 //int adid =Convert.ToInt32(editedItem.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["AdId"]); DataSet dataSet = new DataSet(); SqlConnection thisConnection = new SqlConnection(@"Data Source =(local);UID=sa;PWD=19830919;" + "Initial Catalog=adinfo"); thisConnection.Open(); SqlDataAdapter adapter = new SqlDataAdapter(); adapter.SelectCommand = new SqlCommand("SELECT [AdId], [AdKeyId], [AdUrl], [AdPosition], [AdDescription], [AdText], [AdCode], [ExpireDate], [IsAvailable], [ExpireTime], [BeginTime], [PublishTime], [AdViewsMax], [ProviderId], [BeginDate], [AdViews], [AdHitsMax], [AdHash], [AdHits] FROM [AdInfo]", thisConnection); adapter.Fill(dataSet, "AdInfo"); thisConnection.Close(); DataTable dt = dataSet.Tables["AdInfo"]; foreach (DataRow dr in dt.Rows) { bt = Convert.ToInt32(dr["BeginTime"]); et = Convert.ToInt32(dr["ExpireTime"]); adp = Convert.ToInt32(dr["AdPosition"]); BeginTime = EditIntToTime(bt); ExpireTime = EditIntToTime(et); IntToBool(adp); } dt.Columns.Remove("BeginTime"); dt.Columns.Remove("ExpireTime"); dt.Columns.Add(new DataColumn("BeginTime", typeof(DateTime))); dt.Columns.Add(new DataColumn("ExpireTime", typeof(DateTime))); dt.Columns.Add(new DataColumn("Head", typeof(bool))); dt.Columns.Add(new DataColumn("Center", typeof(bool))); dt.Columns.Add(new DataColumn("Foot", typeof(bool))); foreach (DataRow dr in dt.Rows) { dr["BeginTime"] = BeginTime; dr["ExpireTime"] = ExpireTime; dr["Head"] = head; dr["Center"] = center; dr["Foot"] = foot; } this.ADInfo.DataSource = dataSet.Tables["AdInfo"].DefaultView;奇怪的是 其他操作都没问题 就增加数据时报错 具体是哪里出错了?我发现 foreach (DataRow dr in dt.Rows) { dr["BeginTime"] = BeginTime; dr["ExpireTime"] = ExpireTime; dr["Head"] = head; dr["Center"] = center; dr["Foot"] = foot; } 这里应该是不行的,foreach只读的,你在这里对datarow里的字段赋值,应该是会出错的.你改成for吧! for(int i=0;i<dt.Rows.Count;i++) { dt.Rows[i]["BeginTime"] = BeginTime; //还有,要注意你时间赋值时,格式是否一样.跟追以下看看. dt.Rows[i]["ExpireTime"] = ExpireTime; dt.Rows[i]["Head"] = head; dt.Rows[i]["Center"] = center; dt.Rows[i]["Foot"] = foot; } 页面跳转并关闭旧页面 如何将一个数组里面的重复项去掉? 如何实现Post数据后不跳转页面 Session取不到值 gridview 的数据绑定问题 如何取得frame的相关属性 上海ASP.NET全职合作 救救小妹吧~~ASPNETC#制作中文版的网站怎么转化成英文版的 ?? 一个关于上传的问题 关于asp.net的session问题,急!!!请高手支持 挑战:web2.0视频分享网站经常出现错误提示:服务器太忙,请稍后访问。最可能的原因... 想去掉一个警告错误,涉及.net 1.0和.net 2.0的区别!请各位赐教,谢谢!
这是代码
int bt, et, adp;
GridEditableItem editedItem = e.Item as GridEditableItem;
//得到当前编辑行
//int adid =Convert.ToInt32(editedItem.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["AdId"]);
DataSet dataSet = new DataSet();
SqlConnection thisConnection = new SqlConnection(@"Data Source =(local);UID=sa;PWD=19830919;" + "Initial Catalog=adinfo");
thisConnection.Open();
SqlDataAdapter adapter = new SqlDataAdapter(); adapter.SelectCommand = new SqlCommand("SELECT [AdId], [AdKeyId], [AdUrl], [AdPosition], [AdDescription], [AdText], [AdCode], [ExpireDate], [IsAvailable], [ExpireTime], [BeginTime], [PublishTime], [AdViewsMax], [ProviderId], [BeginDate], [AdViews], [AdHitsMax], [AdHash], [AdHits] FROM [AdInfo]", thisConnection); adapter.Fill(dataSet, "AdInfo"); thisConnection.Close();
DataTable dt = dataSet.Tables["AdInfo"]; foreach (DataRow dr in dt.Rows)
{
bt = Convert.ToInt32(dr["BeginTime"]);
et = Convert.ToInt32(dr["ExpireTime"]);
adp = Convert.ToInt32(dr["AdPosition"]);
BeginTime = EditIntToTime(bt);
ExpireTime = EditIntToTime(et);
IntToBool(adp); }
dt.Columns.Remove("BeginTime");
dt.Columns.Remove("ExpireTime");
dt.Columns.Add(new DataColumn("BeginTime", typeof(DateTime)));
dt.Columns.Add(new DataColumn("ExpireTime", typeof(DateTime)));
dt.Columns.Add(new DataColumn("Head", typeof(bool)));
dt.Columns.Add(new DataColumn("Center", typeof(bool)));
dt.Columns.Add(new DataColumn("Foot", typeof(bool)));
foreach (DataRow dr in dt.Rows)
{
dr["BeginTime"] = BeginTime;
dr["ExpireTime"] = ExpireTime;
dr["Head"] = head;
dr["Center"] = center;
dr["Foot"] = foot;
}
this.ADInfo.DataSource = dataSet.Tables["AdInfo"].DefaultView;
奇怪的是 其他操作都没问题 就增加数据时报错
foreach (DataRow dr in dt.Rows)
{
dr["BeginTime"] = BeginTime;
dr["ExpireTime"] = ExpireTime;
dr["Head"] = head;
dr["Center"] = center;
dr["Foot"] = foot;
}
这里应该是不行的,foreach只读的,你在这里对datarow里的字段赋值,应该是会出错的.你改成for吧! for(int i=0;i<dt.Rows.Count;i++)
{
dt.Rows[i]["BeginTime"] = BeginTime; //还有,要注意你时间赋值时,格式是否一样.跟追以下看看.
dt.Rows[i]["ExpireTime"] = ExpireTime;
dt.Rows[i]["Head"] = head;
dt.Rows[i]["Center"] = center;
dt.Rows[i]["Foot"] = foot;
}