DataGrid内按钮单击事件不执行?

Shadow_gui 2006-06-12 10:44:32
在DataGrid的删除一个记录时,弹出确认对话框,我是写成下面这样:
private void dgCustomers_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem)
{
Button btnDelete = (Button)(e.Item.Cells[0].Controls[0]);
btnDelete.Attributes.Add("onclick","JavaScript:return confirm(’确定删除?’)");
//btnDelete.Attributes["onclick"] = "JavaScript:return confirm(’确定删除?’)";
e.Item.Attributes.Add("onMouseOver","this.style.backgroundColor=’#FFCC66’");
e.Item.Attributes.Add("onMouseOut","this.style.backgroundColor=’#ffffff’");
}
}

结果也没弹出对话框,记录也没有变色,调试进也看到这些代码在启动窗口时就执行了。生成的HTML如下:
<TR onmouseover=this.style.backgroundColor=’#FFCC66’
onmouseout=this.style.backgroundColor=’#ffffff’>
<TD><INPUT onclick="JavaScript:return confirm(’确定删除?’)" type=submit value=选择 name=dgCustomers:_ctl3:_ctl0></TD>
<TD><INPUT type=submit value=编辑 name=dgCustomers:_ctl3:_ctl1></TD>
<TD><INPUT type=submit value=删除 name=dgCustomers:_ctl3:_ctl2></TD>
...全文
261 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wolfsky1994 2006-06-13
  • 打赏
  • 举报
回复
是'不是'
你把引号的全角和半角搞错了,否则没有别的解释
foyuan 2006-06-13
  • 打赏
  • 举报
回复
1.Page_Load中绑定数据的时候没有加上 if(!Page.IsPostBack){}
2.事件丢失
Shadow_gui 2006-06-13
  • 打赏
  • 举报
回复
to xumw():
谢谢指点,我把这段代码写在DataBound事件中,是想在有数据检索出来后,为按钮添加删除事件,并不是想直接删除数据,这样写应该是可行的。
xumw 2006-06-12
  • 打赏
  • 举报
回复
补充

控件 CommandName 名称必须为 delete
xumw 2006-06-12
  • 打赏
  • 举报
回复
你怎么写在
private void dgCustomers_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)

要写在 DelEteCommand 事件中。
并且你的控件名称必须为 delete
wokagoka 2006-06-12
  • 打赏
  • 举报
回复
迷糊
帮顶吧
ASP.NET常用代码 1. 打开新的窗口并传送参数: 传送参数: response.write("<script>window.open('*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"')按钮添加对话框 传送参数: response.write("<script>window.open('*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"')按钮添加对话框 Button1.Attributes.Add("onclick","return confirm('确认?')"); button.attributes.add("onclick","if(confirm('are you sure...?')){return true;}else{return false;}") 3.删除表格选定记录 int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex]; string deleteCmd = "DELETE from Employee where emp_id = " + intEmpID.ToString() 4.删除表格记录警告 private void DataGrid_ItemCreated(Object sender,DataGridItemEventArgs e) { switch(e.Item.ItemType) { case ListItemType.Item : case ListItemType.AlternatingItem : case ListItemType.EditItem: TableCell myTableCell; myTableCell = e.Item.Cells[14]; LinkButton myDeleteButton ; myDeleteButton = (LinkButton)myTableCell.Controls[0]; myDeleteButton.Attributes.Add("onclick","return confirm('您是否确定要删除这条信息');"); break; default: break; } } 5.点击表格行链接另一页 private void grdCustomer_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { //点击表格打开 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) e.Item.Attributes.Add("onclick","window.open('Default.aspx?id=" + e.Item.Cells[0].Text + "');"); } 双击表格连接到另一页 在itemDataBind事件中 if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { string OrderItemID =e.item.cells[1].Text; ... e.item.Attributes.Add("ondblclick", "location.href='../ShippedGrid.aspx?id=" + OrderItemID + "'"); } 双击表格打开新一页 if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { string OrderItemID =e.item.cells[1].Text; ... e.item.Attributes.Add("ondblclick", "open('../ShippedGrid.aspx?id=" + OrderItemID + "')"); } ★特别注意:【?id=】 处不能为 【?id =】 6.表格超连接列传递参数 ' & name='<%# DataBinder.Eval(Container.DataItem, "数据字段2")%>' /> 7.表格点击改变颜色 if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem) { e.Item.Attributes.Add("onclick","this.style.backgroundColor='#99cc00';this.style.color='buttontext';this.style.cursor='default';"); } 写在DataGrid的_ItemDataBound里 if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem) { e.Item.Attributes.Add("onmouseover","this.style.backgroundColor='#99cc00';this.style.color='buttontext';this.style.cursor='default';"); e.Item.Attributes.Add("onmouseout","this.style.backgroundColor='';this.style.color='';"); } 8.关于日期格式 日期格式设定 DataFormatString="{0:yyyy-MM-dd}" 我觉得应该在itembound事件中 e.items.cell["你的列"].text=DateTime.Parse(e.items.cell["你的列"].text.ToString("yyyy-MM-dd")) 9.获取错误信息并到指定页面 不要使用Response.Redirect,而应该使用Server.Transfer e.g // in global.asax protected void Application_Error(Object sender, EventArgs e) { if (Server.GetLastError() is HttpUnhandledException) Server.Transfer("MyErrorPage.aspx"); //其余的非HttpUnhandledException异常交给ASP.NET自己处理就okay了 :) } Redirect会导致post-back的产生从而丢失了错误信息,所以页面导向应该直接在服务器端执行,这样就可以在错误处理页面得到出错信息并进行相应的处理 10.清空Cookie Cookie.Expires=[DateTime]; Response.Cookies("UserName").Expires = 0 11.自定义异常处理 //自定义异常处理类 using System; using System.Diagnostics; namespace MyAppException { /// /// 从系统异常类ApplicationException继承的应用程序异常处理类。 /// 自动将异常内容记录到Windows NT/2000的应用程序日志 /// public class AppException:System.ApplicationException { public AppException() { if (ApplicationConfiguration.EventLogEnabled) LogEvent("出现一个未知错误。"); } public AppException(string message) { LogEvent(message); } public AppException(string message,Exception innerException) { LogEvent(message); if (innerException != null) { LogEvent(innerException.Message); } } //日志记录类 using System; using System.Configuration; using System.Diagnostics; using System.IO; using System.Text; using System.Threading; namespace MyEventLog { /// /// 事件日志记录类,提供事件日志记录支持 /// /// 定义了4个日志记录方法 (error, warning, info, trace) /// /// public class ApplicationLog { /// /// 将错误信息记录到Win2000/NT事件日志中 /// 需要记录的文本信息 /// public static void WriteError(String message) { WriteLog(TraceLevel.Error, message); } /// /// 将警告信息记录到Win2000/NT事件日志中 /// 需要记录的文本信息 /// public static void WriteWarning(String message) { WriteLog(TraceLevel.Warning, message); } /// /// 将提示信息记录到Win2000/NT事件日志中 /// 需要记录的文本信息 /// public static void WriteInfo(String message) { WriteLog(TraceLevel.Info, message); } /// /// 将跟踪信息记录到Win2000/NT事件日志中 /// 需要记录的文本信息 /// public static void WriteTrace(String message) { WriteLog(TraceLevel.Verbose, message); } /// /// 格式化记录到事件日志的文本信息格式 /// 需要格式化的异常对象 /// 异常信息标题字符串. /// /// 格式后的异常信息字符串,包括异常内容和跟踪堆栈. /// /// public static String FormatException(Exception ex, String catchInfo) { StringBuilder strBuilder = new StringBuilder(); if (catchInfo != String.Empty) { strBuilder.Append(catchInfo).Append("\r\n"); } strBuilder.Append(ex.Message).Append("\r\n").Append(ex.StackTrace); return strBuilder.ToString(); } /// /// 实际事件日志写入方法 /// 要记录信息的级别(error,warning,info,trace). /// 要记录的文本. /// private static void WriteLog(TraceLevel level, String messageText) { try { EventLogEntryType LogEntryType; switch (level) { case TraceLevel.Error: LogEntryType = EventLogEntryType.Error; break; case TraceLevel.Warning: LogEntryType = EventLogEntryType.Warning; break; case TraceLevel.Inf LogEntryType = EventLogEntryType.Information; break; case TraceLevel.Verbose: LogEntryType = EventLogEntryType.SuccessAudit; break; default: LogEntryType = EventLogEntryType.SuccessAudit; break; } EventLog eventLog = new EventLog("Application", ApplicationConfiguration.EventLogMachineName, ApplicationConfiguration.EventLogSourceName ); //写入事件日志 eventLog.WriteEntry(messageText, LogEntryType); } catch {} //忽略任何异常 } } //class ApplicationLog } 12.Panel 横向滚动,纵向自动扩展 13.回车转换成Tab <script language="javascript" for="document" event="onkeydown"> if(event.keyCode==13 && event.srcElement.type!='button' && event.srcElement.type!='submit' && event.srcElement.type!='reset' && event.srcElement.type!=''&& event.srcElement.type!='textarea'); event.keyCode=9; DataGrid超级连接列 DataNavigateUrlField="字段名" DataNavigateUrlFormatString="http://xx/inc/delete.aspx?ID={0}" 15.DataGrid行随鼠标变色 private void DGzf_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { if (e.Item.ItemType!=ListItemType.Header) { e.Item.Attributes.Add( "onmouseout","this.style.backgroundColor=\""+e.Item.Style["BACKGROUND-COLOR"]+"\""); e.Item.Attributes.Add( "onmouseover","this.style.backgroundColor=\""+ "#EFF3F7"+"\""); } } 16.模板列 后台代码 protected void CheckAll_CheckedChanged(object sender, System.EventArgs e) { //改变列的选定,实现全选或全不选。 CheckBox chkExport ; if( CheckAll.Checked) { foreach(DataGridItem oDataGridItem in MyDataGrid.Items) { chkExport = (CheckBox)oDataGridItem.FindControl("chkExport"); chkExport.Checked = true; } } else { foreach(DataGridItem oDataGridItem in MyDataGrid.Items) { chkExport = (CheckBox)oDataGridItem.FindControl("chkExport"); chkExport.Checked = false; } } } 17.数字格式化 【<%#Container.DataItem("price")%>的结果是500.0000,怎样格式化为500.00?】 <%#Container.DataItem("price","{0:¥#,##0.00}")%> int i=123456; string s=i.ToString("###,###.00"); 18.日期格式化 【aspx页面内:<%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date")%> 显示为: 2004-8-11 19:44:28 我只想要:2004-8-11 】 <%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date","{0:yyyy-M-d}")%> 应该如何改? 【格式化日期】 取出来,一般是object ((DateTime)objectFromDB).ToString("yyyy-MM-dd"); 【日期的验证表达式】 A.以下正确的输入格式: [2004-2-29], [2004-02-29 10:29:39 pm], [2004/12/31] ^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[1-9])|(1[0-2]))\:([0-5][0-9])((\s)|(\:([0-5][0-9])\s))([AM|PM|am|pm]{2,2})))?$ B.以下正确的输入格式:[0001-12-31], [9999 09 30], [2002/03/03] ^\d{4}[\-\/\s]?((((0[13578])|(1[02]))[\-\/\s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\-\/\s]?(([0-2][0-9])|(30)))|(02[\-\/\s]?[0-2][0-9]))$ 【大小写转换】 HttpUtility.HtmlEncode(string); HttpUtility.HtmlDecode(string) 19.如何设定全局变量 Global.asax中 Application_Start()事件中 添加Application[属性名] = xxx; 就是你的全局变量 20.怎样作到HyperLinkColumn生成的连接后,点击连接,打开新窗口? HyperLinkColumn有个属性Target,将器值设置成"_blank"即可.(Target="_blank") 【ASPNETMENU】点击菜单项弹出新窗口 在你的menuData.xml文件的菜单项中加入URLTarget="_blank" 如: ...... 最好将你的aspnetmenu升级到1.2版 21.委托讨论 http://community.csdn.net/Expert/topic/2651/2651579.xml?temp=.7183191 http://dev.csdn.net/develop/article/22/22951.shtm 22.读取DataGrid控件TextBox值 foreach(DataGrid dgi in yourDataGrid.Items) { TextBox tb = (TextBox)dgi.FindControl("yourTextBoxId"); tb.Text.... } 23.在DataGrid中有3个模板列包含Textbox分别为 DG_ShuLiang (数量) DG_DanJian(单价) DG_JinE(金额)分别在5.6.7列,要求在录入数量及单价的时候自动算出金额即:数量*单价=金额还要求录入时限制为数值型.我如何用客户端脚本实现这个功能? 〖思归〗 <script language="javascript"> function DoCal() { var e = event.srcElement; var row = e.parentNode.parentNode; var txts = row.all.tags("INPUT"); if (!txts.length || txts.length < 3) return; var q = txts[txts.length-3].value; var p = txts[txts.length-2].value; if (isNaN(q) || isNaN(p)) return; q = parseInt(q); p = parseFloat(p); txts[txts.length-1].value = (q * p).toFixed(2); } datagrid选定比较底下的行时,为什么总是刷新一下,然后就滚动到了最上面,刚才选定的行因屏幕的关系就看不到了 page_load page.smartNavigation=true 25.在Datagrid中修改数据,当点击编辑键时,数据出现在文本框中,怎么控制文本框的大小 ? private void DataGrid1_ItemDataBound(obj sender,DataGridItemEventArgs e) { for(int i=0;i"; private static string ScriptEnd = "DataGrid1.CurrentPageIndex < (DataGrid1.PageCount - 1)) { DataGrid1.CurrentPageIndex += 1; curPageIndex+=1; } bind(); // DataGrid1数据绑定函数 上一页: if(DataGrid1.CurrentPageIndex >0) { DataGrid1.CurrentPageIndex += 1; curPageIndex-=1; } bind(); // DataGrid1数据绑定函数 直接页面跳转: int a=int.Parse(JumpPage.Value.Trim());//JumpPage.Value.Trim()为跳转值 if(a<DataGrid1.PageCount) { this.DataGrid1.CurrentPageIndex=a; } bind(); 29.DataGrid使用: 3.1添加删除确认: private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { foreach(DataGridItem di in this.DataGrid1.Items) { if(di.ItemType==ListItemType.Item||di.ItemType==ListItemType.AlternatingItem) { ((LinkButton)di.Cells[8].Controls[0]).Attributes.Add("onclick","return confirm('确认删除此项吗?');"); } } } 3.2样式交替: ListItemType itemType = e.Item.ItemType; if (itemType == ListItemType.Item ) { e.Item.Attributes["onmouseout"] = "javascript:this.style.backgroundColor='#FFFFFF';"; e.Item.Attributes["onmouseover"] = "javascript:this.style.backgroundColor='#d9ece1';cursor='hand';" ; } else if( itemType == ListItemType.AlternatingItem) { e.Item.Attributes["onmouseout"] = "javascript:this.style.backgroundColor='#a0d7c4';"; e.Item.Attributes["onmouseover"] = "javascript:this.style.backgroundColor='#d9ece1';cursor='hand';" ; } 3.3添加一个编号列: DataTable dt= c.ExecuteRtnTableForAccess(sqltxt); //执行sql返回的DataTable DataColumn dc=dt.Columns.Add("number",System.Type.GetType("System.String")); for(int i=0;iDataGrid1.DataSource=dt; DataGrid1.DataBind(); 3.4 DataGrid1中添加一个CheckBox,页面中添加一个全选框 private void CheckBox2_CheckedChanged(object sender, System.EventArgs e) { foreach(DataGridItem thisitem in DataGrid1.Items) { ((CheckBox)thisitem.Cells[0].Controls[1]).Checked=CheckBox2.Checked; } } 将当前页面中DataGrid1显示的数据全部删除 foreach(DataGridItem thisitem in DataGrid1.Items) { if(((CheckBox)thisitem.Cells[0].Controls[1]).Checked) { string strloginid= DataGrid1.DataKeys[thisitem.ItemIndex].ToString(); Del (strloginid); //删除函数 } } 30.当文件在不同目录下,需要获取数据库连接字符串(如果连接字符串放在Web.config,然后在Global.asax中初始化) 在Application_Start中添加以下代码: Application["ConnStr"]=this.Context.Request.PhysicalApplicationPath+ConfigurationSettings.AppSettings["ConnStr"].ToString(); 31. 变量.ToString() 字符型转换 转为字符串 12345.ToString("n"); //生成 12,345.00 12345.ToString("C"); //生成 ¥12,345.00 12345.ToString("e"); //生成 1.234500e+004 12345.ToString("f4"); //生成 12345.0000 12345.ToString("x"); //生成 3039 (16进制) 12345.ToString("p"); //生成 1,234,500.00% 32、变量.Substring(参数1,参数2); 截取字串的一部分,参数1为左起始位数,参数2为截取几位。 如:string s1 = str.Substring(0,2); 34.在自己的网站上登陆其他网站:(如果你的页面是通过嵌套方式的话,因为一个页面只能有一个FORM,这时可以导向另外一个页面再提交登陆信息) <SCRIPT language="javascript"> <!--  function gook(pws)  {   frm.submit();  } //--> </SCRIPT> <body leftMargin="0" topMargin="0" onload="javascript:gook()" marginwidth="0" marginheight="0"> <form name="frm" action=" http://220.194.55.68:6080/login.php?retid=7259 " method="post"> <tr> <td> <input id="f_user" type="hidden" size="1" name="f_user" runat="server"> <input id="f_domain" type="hidden" size="1" name="f_domain" runat="server"> <input class="box" id="f_pass" type="hidden" size="1" name="pwshow" runat="server"> <INPUT id="lng" type="hidden" maxLength="20" size="1" value="5" name="lng"> <INPUT id="tem" type="hidden" size="1" value="2" name="tem"> </td> </tr> </form> 文本框的名称必须是你要登陆的网页上的名称,如果源码不行可以用vsniffer 看看。   下面是获取用户输入的登陆信息的代码: string name; name=Request.QueryString["EmailName"]; try {  int a=name.IndexOf("@",0,name.Length);  f_user.Value=name.Substring(0,a);  f_domain.Value=name.Substring(a+1,name.Length-(a+1));  f_pass.Value=Request.QueryString["Psw"]; } catch {  Script.Alert("错误的邮箱!");  Server.Transfer("index.aspx"); } 35.警告窗口 /**//// /// 服务器端弹出alert对话框 /// /// 提示信息,例子:"不能为空!" /// Page类 public void Alert(string str_Message,Page page) { page.RegisterStartupScript("","<script>alert('"+str_Message+"'); /// 服务器端弹出alert对话框,并使控件获得焦点 /// /// 获得焦点控件Id值,比如:txt_Name /// 提示信息,例子:"请输入您姓名!" /// Page类 public void Alert(string str_Ctl_Name,string str_Message,Page page) { page.RegisterStartupScript("","<script>alert('"+str_Message+"');document.forms(0)."+str_Ctl_Name+".focus(); document.forms(0)."+str_Ctl_Name+".select(); /// 服务器端弹出confirm对话框 /// /// 提示信息,例子:"您是否确认删除!" /// 隐藏Botton按钮Id值,比如:btn_Flow /// Page类 public void Confirm(string str_Message,string btn,Page page) { page.RegisterStartupScript("","<script> if (confirm('"+str_Message+"')==true){document.forms(0)."+btn+".click();}按钮事件,点击取消触发一个隐藏按钮事件 /**//// /// 服务器端弹出confirm对话框,询问用户准备转向那些操作,包括“确定”和“取消”时的操作 /// /// 提示信息,比如:"成功增加数据,单击\"确定\"按钮填写流程,单击\"取消\"修改数据" /// "确定"按钮id值 /// "取消"按钮id值 /// Page类 public void Confirm(string str_Message,string btn_Redirect_Flow,string btn_Redirect_Self,Page page) { page.RegisterStartupScript("","<script> if (confirm('"+str_Message+"')==true){document.forms(0)."+btn_Redirect_Flow+".click();}else{document.forms(0)."+btn_Redirect_Self+".click();} /// 使控件获得焦点 /// /// 获得焦点控件Id值,比如:txt_Name /// Page类 public void GetFocus(string str_Ctl_Name,Page page) { page.RegisterStartupScript("","<script>document.forms(0)."+str_Ctl_Name+".focus(); document.forms(0)."+str_Ctl_Name+".select(); ///名称:redirect ///功能:子窗体返回主窗体 ///参数:url ///返回值:空 /// public void redirect(string url,Page page) { if ( Session["IfDefault"]!=(object)"Default") { page.RegisterStartupScript("","<script>window.top.document.location.href='"+url+"'; /// 名称:IsNumberic /// 功能:判断输入的是否是数字 /// 参数:string oText:源文本 /// 返回值: bool true:是 false:否 /// public bool IsNumberic(string oText) { try { int var1=Convert.ToInt32 (oText); return true; } catch { return false; } } 获得字符串实际长度(包括中文字符) //获得字符串oString的实际长度 public int StringLength(string oString) { byte[] strArray=System.Text .Encoding.Default .GetBytes (oString); int res=strArray.Length ; return res; } 42.将回车转换为TAB //当在有keydown事件的控件上敲回车时,变为tab public void Tab(System.Web .UI.WebControls .WebControl webcontrol) { webcontrol.Attributes .Add ("onkeydown", "if(event.keyCode==13) event.keyCode=9"); } 43.datagrid分页中如果删除时出现超出索引 public void jumppage(System.Web.UI.WebControls.DataGrid dg) { int int_PageLess; //定义页面跳转的页数 //如果当前页是最后一页 if(dg.CurrentPageIndex == dg.PageCount-1) { //如果就只有一页 if(dg.CurrentPageIndex == 0) { //删除后页面停在当前页 dg.CurrentPageIndex = dg.PageCount-1; } else { //如果最后一页只有一条记录 if((dg.Items.Count % dg.PageSize == 1) || dg.PageSize == 1) { //把最后一页最后一条记录删除后,页面应跳转到前一页 int_PageLess = 2; } else //如果最后一页的记录数大于1,那么在最后一页删除记录后仍然停在当前页 { int_PageLess = 1; } dg.CurrentPageIndex = dg.PageCount - int_PageLess; } } } 发表于 2
软件名称:数据库助手 版 本:2.0 编程语言:Visual Studio .NET C# 调试环境:WINDOWS 2000 server 运行环境:需要 Microsoft .NET Framework1.1(dotnetfx.exe 23M) 支持 版 权:完全免费 使用说明: 此程序提供给经常使用SQL server,Oracle 的程序开发人员.(支持SQL Server 6.5 7.0 2000;Oracle 9i) 快速浏览数据,更改数据。提取字段名,表名 制作初始化脚本,查看存储过程。快速浏览数据。 可以省去敲数据表名及字段名的麻烦。对于使用SQl server,Oracle 的人员非常方便。 (如需要VB版,可与我联系,VB版2003年后不再升级) 1.登陆页面添写要连接的数据库参数。确定后进入第二个页面。 2.点击数据库名,显示相应数据库的数据表名。点击数据表名,显示数据表的 字段信息及数据记录(为了显示速度的要求,只显示前500行,如需要全部记录 请点击“执行按钮)。 3.制作Insert 脚本,省去程序开发人员手工写脚本。 4.所有sql语句都可在sql框中执行。 5.单击字段名,会出现在sql 框中,并会替代框中选中部分,方便输录。 6.数据记录可以增加,修改,删除。 7.增加查看和修改存储过程功能。(2003.03.03) 8.修改数据库名与密码的加密方法(2003.06.02) 9.增加SQL Server 2000字段描述(2003-10-10) 10.修改FramkWork1.1下DataGrid不支持滚轮键的bug(2003-10-12) 11.更改菜单及支持6.5的数据库(2003.12) 12.更新datetime字段只能显示日期的bug(2004.3.2) 13.更新错误提示方式。(2004.3.10) 14.更改启动时透明度算法可能会出错的问题。(2004.08.19感谢zhiming99) 15.增加对oracle数据库的支持(测试版本9.2)(2004.12) 16.导出数据方式的更改,可一次导出所有表。(2004.12) 17.标记主键(2004.12) 18.增加显示数据库,数据表的数量.(2005.01) 19.修改数据表过多时出现的乱码问题(2005.02
目 录 数据库课程设计报告 1 1.开发环境和相关技术介绍 5 1.1开发环境 5 1.2相关技术介绍 5 2.需求分析 5 2.1系统需求和功能 5 2.1.2功能需求描述 6 2.1.2.1员工基本信息模块 6 2.1.2.2工资结构设置模块 6 2.1.2.3工资汇总模块 6 2.2数据字典 6 2.2.1数据结构 7 2.2.2数据项 7 2.2.3数据流 8 2.4安全性要求 8 2.5一致性要求 9 2.6完整性要求 9 3 概念结构设计 9 3.1设计方法和步骤 9 3.2概念结构E-R图 9 4.逻辑结构设计 9 4.1具体RDBMS数据模型转换 9 4.2系统结构图 10 5.数据库物理设计 10 5.1索引的选择建立 10 5.2数据存放位置 10 5.3确定系统配置 10 6.数据库实施 10 6.1数据库创建 10 6.1.1各数据表说明 10 6.1.2数据库创建 11 6.2数据库备份和恢复方案 13 6.2.1应用辅助工具进行备份和恢复 13 6.2.2分离数据库法 13 6.3用户界面设计和应用程序编码 13 6.3.1用户界面设计 13 6.3.2类文件功能描述 14 6.3.3主要代码分析 14 }7.系统测试方案和测试报告 21 7.1测试方案 21 7.2测试过程 21 7.2.1登陆测试 21 8.安装和使用说明 25 8.1安装说明 25 8.1.1安装VB6.0E 25 8.1.2安装Microsoft SQL Server 2000 ODBC驱动程序 25 8.1.3升级Microsoft SQL Server 2000数据库管理系统 25 8.1.4附加数据库 25 8.1.5可能出现情况 25 9.完成情况和总结 25 9.1总结 25 1.开发环境和相关技术介绍 1.1开发环境 项目名称: 工资管理系统 开发软件:vb6.0与Access 2000 运行环境:2000/XP/2003 1.2相关技术介绍 Microsoft SQL Server 2000数据库管理系统是微软公司研制开发的关系型数据库管理系统。该系统支持并扩展了SQL语言标准,可以运用标准SQL语句对数据进行操作,也可以使用功能强大的GUI工具进行灵活的数据管理。同时,系统还提供功能完善的API,可以在应用程序中调用这些API来实现与数据库系统的连接以及相关数据的操作。sp3是该系统的一个版本号,只有sp4以上的SQL 2000系统才能够支持纯ODBC连接方式。 Vb6.0功能强大的应用程序开发工具,主要支持基于面向对像化的语言的各种开发项目。 2.需求分析 2.1系统需求和功能 工资管理信息系统对企业加强工资管理有着重要的作用,就一般的大型企业来说,它的设计内容非常复杂而且繁多,比如拥有工资计算功能,工资统计功能,报表输出功能,而且设计的模块也很多,比如工资管理模块,工资统计模块,报表设计模块,打印输出模块,模糊查询模块等。 由于本软件主要是为作者工作的一家科技公司定制开发的。该公司是一家刚刚成立的公司,总体人员比较少,有正式员工20人,人员结构比较简单,学历比较高,基本拥有大专以上学历,部门划分也很清晰,而且人员的流动性不高,所以公司目前对工资管理的要求不高。因此,针对该公司而言,我们经过反复论证,最终确定了工资管理系统的设计方案,该工资管理系统的主要功能如图3.1所示: 2.1.2功能需求描述 2.1.2.1员工基本信息模块 员工基本信息模块具有员工信息输入、员工增删、员工信息查询三个功能,员工基本信息包括员工号、员工姓名、员工性别、所在部门、所在岗位、工龄和工资等级等信息。员工增删实现了对数据库中员工信息的增加和删除。员工可以通过员工号或员工姓名对员工信息进行查询。 2.1.2.2工资结构设置模块 根据该公司的工资管理实际情况,本系统将工资结构分为基础工资、岗位工资、工龄工资三部分。该模块可以对这三个工资类型设置工资等级,并对每个等级设置工资标准。 2.1.2.3工资汇总模块 用户在员工信息管理模块对该员工的工资等级进行输入以后,在工资汇总模块会自动对员工工资进行汇总。用户可以打印出工资汇总表,打印之前可以通过打印预览功能进行打预览。 2.2数据字典 该软件的数据库由下述四张数据表组成: 员工信息表、基础工资设置表、岗位工资设置表 1、 员工信息表 字段 字段名 类型 宽度 说明 1 员工号 字符型 3 数字 2 员工姓名 字符型 10 小于等于5个汉字 3 员工性别 字符型 2 “男”或“女” 4 岗位名称 字符型 14 小于等于7个汉字 5 工龄 数值型 2 1~99之间 6 工资等级 数值型 2 1~99之间 2、 基础工资设置表 字段 字段名 类型 宽度
Visual C++程序开发范例宝典配套光盘,因大小受限,所以分成8部分上传,必须全部下载才能正常解压! 第1章 窗体与界面设计 1.1 菜单应用实例 实例001 在系统菜单中添加菜单项 实例002 带图标的程序菜单 实例003 根据表中数据动态生成菜单 实例004 浮动的菜单 1.2 弹出菜单应用实例 实例005 在控件上单击右键弹出菜单 实例006 个性化的弹出菜单 实例007 任务栏托盘弹出菜单 1.3 工具栏应用实例 实例008 带背景的工具栏 实例009 带图标的工具栏 实例010 带下拉菜单的工具栏 实例011 可调整按钮位置的工具栏 实例012 浮动工具栏 实例013 根据表中数据动态生成工具栏 实例014 具有提示功能的工具栏 1.4 状态栏应用实例 实例015 带进度条的状态栏 实例016 动画效果的状态栏 实例017 滚动字幕的状态栏 1.5 导航界面应用实例 实例018 Outlook导航界面 实例019 树状导航界面 实例020 按钮导航界面 实例021 类QQ导航菜单 1.6 界面窗体应用实例 实例022 背景为渐变色的程序界面 实例023 椭圆形的程序界面 实例024 自绘窗体界面 实例025 类似Windows XP的程序界面 实例026 窗体融合技术 实例027 限制对话框最大时的窗口大小 1.7 多媒体宣传光盘应用实例 实例028 多媒体宣传光盘主界面 实例029 自动运行的多媒体宣传光盘 1.8 多媒体触摸屏程序应用实例 实例030 采购中心多媒体触摸屏程序 实例031 为触摸屏程序添加虚拟键盘 1.9 窗体位置应用实例 实例032 不可移动的窗体 实例033 始终在最上面的窗体 实例034 动画显示窗体 实例035 以时钟显示界面窗体 1.10 窗体标题栏应用实例 实例036 闪烁的窗体标题栏 实例037 拖动没有标题栏的窗体 实例038 禁用标题栏上的最大化、最小化或关闭按钮 1.11 窗体形状及应用 实例039 半透明窗体 实例040 创建字型窗体 实例041 百叶窗窗体 实例042 类似Office助手 第2章 控件应用 2.1 按钮控件典型实例 实例043 AVI动画按钮 实例044 GIF动画按钮 实例045 图文按钮 实例046 不规则按钮 2.2 EditBox控件典型实例 实例047 为EditBox设置新的系统菜单 实例048 为EditBox控件添加列表选择框 实例049 多彩边框的编辑框 实例050 改变编辑框文本颜色 2.3 ListBox控件典型实例 实例051 利用ListBox控件实现标签式数据选择 实例052 在ListBox控件间实现数据交换 实例053 列表项的提示条 2.4 ComboBox控件典型实例 实例054 将数据表中的字段添加到ComboBox控件 实例055 带查询功能的ComboBox控件 实例056 自动调整组合框的宽度 实例057 颜色组合框 实例058 多列显示的组合框 2.5 ListControl控件典型实例 实例059 将数据库中的数据表添加到ListControl控件 实例060 利用ListControl控件浏览数据 实例061 利用ListControl控件制作导航界面 实例062 在列表视图中拖动视图项 实例063 利用列标题对列表视图进行数据排序 实例064 具有文本录入功能的ListControl控件 2.6 TreeControl控件典型实例 实例065 多级数据库树状结构数据显示 实例066 可动态修改节点的树状结构 实例067 带复选功能的树状结构 实例068 显示磁盘目录 实例069 树型提示框 2.7 RichEdit控件典型实例 实例070 利用RichEdit显示Word文档 实例071 利用RichEdit控件实现文字定位与标识 实例072 利用RichEdit控件显示图文数据 2.8 图形类控件典型实例 实例073 图文数据录入 实例074 带有滚动条的图形控件 2.9 滚动条控件典型实例 实例075 自定义滚动条控件 2.10 控件数组典型实例 实例076 向窗体中动态添加控件 实例077 公交线路模拟 第3章 图形技术 3.1 绘制图形 实例078 绘制正弦曲线 实例079 绘制艺术图案 实例080 画图程序 实例081 绘制立体模型 实例082 利用IFS算法绘制自然景物 3.2 图像预览 实例083 图片自动预览程序 实例084 图片批量浏览 实例085 浏览大幅BMP图片 实例086 放大和缩小图片 实例087 可随鼠标移动的图形 实例088 随图像大小变换的图像浏览器 3.3 图片效果 实例089 图片马赛克效果 实例090 图片百叶窗效果 实例091 电影胶片特效 实例092 翻

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧