money型在DataGrid编辑更新时的问题 DataGrid在编辑money型时显示两位小数用方法: DataFormatString="{0:C}",但是money型在SQL SERVER 2000中是四位小数,这样update之后就有问题了。请问:在编辑时显示两位小数,update提交后能转换为四位小数,达到更新的目的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为SQL SERVER数据库表(如Northwind中Products表)中,money型默认就是4位小数。而在编辑DataGrid时,我显示的只是2位小数,但是按2位小数更新就会出错。 用这个方法DataFormatString="{0:C}"显示2位小数之后 ,像值 18.0000 就会显示为 ¥18.00 ,要是按值 ¥20.00 更新,是无法更新的。对UnitPrice字段的值进行更新以下是我的代码:<%@ Import Namespace="System.Data.SqlClient"%><%@ Import Namespace="System.Data" %><%@ Page language="c#" Codebehind="WebForm4.aspx.cs" Inherits="WebApplication2.WebForm4" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" ><HTML> <HEAD> <title>WebForm4</title> <script language="C#" runat="server">private string sSqlCon= "server=localhost;uid=sa;pwd=sql;database=Northwind";public void Page_Load(Object sender,EventArgs e){if (!IsPostBack){Bind();}}private void Bind(){SqlConnection SqlCon=new SqlConnection(sSqlCon);StringBuilder SqlCmd=new StringBuilder();SqlCmd.Append("select ProductName,UnitPrice,");SqlCmd.Append("UnitsInStock,UnitsOnOrder,");SqlCmd.Append("ProductID from Products");SqlDataAdapter sda=new SqlDataAdapter (SqlCmd.ToString(),SqlCon);DataSet ds = new DataSet();sda.Fill(ds,"P");DGProducts.DataSource=ds.Tables["P"].DefaultView;DGProducts.DataBind();}public void DGProducts_Edit(Object sender,DataGridCommandEventArgs e){DGProducts.EditItemIndex=e.Item.ItemIndex;Bind();}public void DGProducts_Cancel(Object sender,DataGridCommandEventArgs e){DGProducts.EditItemIndex= -1;Bind();}public void DGProducts_Update(Object sender,DataGridCommandEventArgs e){string sProductName,sUnitsInStock,sUnitsOnOrder,sProductID,sUnitPrice;sProductName= ((TextBox)e.Item.Cells[1].Controls[0]).Text;sUnitsInStock= ((TextBox)e.Item.Cells[2].Controls[0]).Text;sUnitsOnOrder= ((TextBox)e.Item.Cells[3].Controls[0]).Text;sUnitPrice= ((TextBox)e.Item.Cells[4].Controls[0]).Text;sProductID= e.Item.Cells[5].Text;StringBuilder sSqlCmd= new StringBuilder();sSqlCmd.Append("update Products ");sSqlCmd.Append("set ProductName= @ProductName,");sSqlCmd.Append("UnitsInStock= @UnitsInStock,");sSqlCmd.Append("UnitsOnOrder= @UnitsOnOrder, ");sSqlCmd.Append("UnitPrice= @UnitPrice ");sSqlCmd.Append("where ProductID= @ProductID");SqlConnection SqlCon= new SqlConnection(sSqlCon);SqlCommand SqlCmd= new SqlCommand(sSqlCmd.ToString(),SqlCon);SqlCmd.Parameters.Add( new SqlParameter("@ProductName",SqlDbType.NVarChar,40));SqlCmd.Parameters["@ProductName"].Value= sProductName;SqlCmd.Parameters.Add( new SqlParameter("@UnitsInStock",SqlDbType.SmallInt));SqlCmd.Parameters["@UnitsInStock"].Value=sUnitsInStock;SqlCmd.Parameters.Add( new SqlParameter("@UnitsOnOrder",SqlDbType.SmallInt));SqlCmd.Parameters["@UnitsOnOrder"].Value=sUnitsOnOrder;SqlCmd.Parameters.Add ( new SqlParameter("@UnitPrice",SqlDbType.Money));SqlCmd.Parameters["@UnitPrice"].Value= sUnitPrice;SqlCmd.Parameters.Add (new SqlParameter("@ProductID",SqlDbType.SmallInt));SqlCmd.Parameters["@ProductID"].Value=sProductID;SqlCon.Open();SqlCmd.ExecuteNonQuery();SqlCon.Close();DGProducts.EditItemIndex= -1;Bind();} </script> <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR"> <meta content="C#" name="CODE_LANGUAGE"> <meta content="JavaScript" name="vs_defaultClientScript"> <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"> <style rel="stylesheet">H3 { FONT: bold 11pt Verdana,Arial,sans-serif}.products { FONT: 9pt Verdana,Arial,sans-serif}.productsHead { FONT: bold 9pt Verdana,Arial,sans-serif; COLOR: white; BACKGROUND-COLOR: maroon}A { TEXT-DECORATION: none}A:hover { COLOR: maroon; TEXT-DECORATION: underline} </style> </HEAD> <body> <form runat="server"> <h3>Northwind Inventory Management - VisualBasic.NET</h3> <asp:datagrid id="DGProducts" runat="server" OnUpdateCommand="DGProducts_Update" OnCancelCommand="DGProducts_Cancel" OnEditCommand="DGProducts_Edit" AutoGenerateColumns="False" Font-Size="12pt" HeaderStyle-CssClass="productsHead" AlternatingItemStyle-BackColor="Tan" GridLines="None" BorderWidth="1px" Width="750px" CellPadding="4"> <AlternatingItemStyle BackColor="Tan"></AlternatingItemStyle> <HeaderStyle CssClass="productsHead"></HeaderStyle> <Columns> <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="编辑" ></asp:EditCommandColumn> <asp:BoundColumn DataField="ProductName" HeaderText="Product Name"></asp:BoundColumn> <asp:BoundColumn DataField="UnitsInStock" HeaderText="Units in Stock"></asp:BoundColumn> <asp:BoundColumn DataField="UnitsOnOrder" HeaderText="Units On Order"></asp:BoundColumn> <asp:BoundColumn DataField="UnitPrice" HeaderText="Price Per Unit" DataFormatString="{0:C}"></asp:BoundColumn> <asp:BoundColumn DataField="ProductID" ReadOnly="True" HeaderText="Product ID"></asp:BoundColumn> </Columns> </asp:datagrid></form> </body></HTML> 数据库表的设计问题求解 DataList 里面添加按钮 但是点击时 并不执行 求大神指教,关于jQuery fullcalendar日历控件问题 用户登录信息问题 如何去掉<img>在超链接〈a>中出现的边框? 高分求教非常简单的问题!在线等,立刻给分~~~~~ 求一控件 ,希望大家能帮帮我 关于DropDownList的奇怪问题!!!!!大家谁遇到过!! 求救!!!! vs2015环境开发asp.net sql数据库日期问题 DataList显示问题
以下是我的代码:<%@ Import Namespace="System.Data.SqlClient"%>
<%@ Import Namespace="System.Data" %>
<%@ Page language="c#" Codebehind="WebForm4.aspx.cs" Inherits="WebApplication2.WebForm4" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm4</title>
<script language="C#" runat="server">
private string sSqlCon= "server=localhost;uid=sa;pwd=sql;database=Northwind";public void Page_Load(Object sender,EventArgs e)
{
if (!IsPostBack)
{
Bind();
}
}private void Bind()
{
SqlConnection SqlCon=new SqlConnection(sSqlCon);
StringBuilder SqlCmd=new StringBuilder();
SqlCmd.Append("select ProductName,UnitPrice,");
SqlCmd.Append("UnitsInStock,UnitsOnOrder,");
SqlCmd.Append("ProductID from Products");
SqlDataAdapter sda=new SqlDataAdapter (SqlCmd.ToString(),SqlCon);
DataSet ds = new DataSet();
sda.Fill(ds,"P");
DGProducts.DataSource=ds.Tables["P"].DefaultView;
DGProducts.DataBind();
}public void DGProducts_Edit(Object sender,DataGridCommandEventArgs e)
{
DGProducts.EditItemIndex=e.Item.ItemIndex;
Bind();
}public void DGProducts_Cancel(Object sender,DataGridCommandEventArgs e)
{
DGProducts.EditItemIndex= -1;
Bind();
}public void DGProducts_Update(Object sender,DataGridCommandEventArgs e)
{
string sProductName,sUnitsInStock,sUnitsOnOrder,sProductID,sUnitPrice;
sProductName= ((TextBox)e.Item.Cells[1].Controls[0]).Text;
sUnitsInStock= ((TextBox)e.Item.Cells[2].Controls[0]).Text;
sUnitsOnOrder= ((TextBox)e.Item.Cells[3].Controls[0]).Text;
sUnitPrice= ((TextBox)e.Item.Cells[4].Controls[0]).Text;
sProductID= e.Item.Cells[5].Text;StringBuilder sSqlCmd= new StringBuilder();
sSqlCmd.Append("update Products ");
sSqlCmd.Append("set ProductName= @ProductName,");
sSqlCmd.Append("UnitsInStock= @UnitsInStock,");
sSqlCmd.Append("UnitsOnOrder= @UnitsOnOrder, ");
sSqlCmd.Append("UnitPrice= @UnitPrice ");
sSqlCmd.Append("where ProductID= @ProductID");SqlConnection SqlCon= new SqlConnection(sSqlCon);
SqlCommand SqlCmd= new SqlCommand(sSqlCmd.ToString(),SqlCon);
SqlCmd.Parameters.Add( new SqlParameter("@ProductName",SqlDbType.NVarChar,40));
SqlCmd.Parameters["@ProductName"].Value= sProductName;
SqlCmd.Parameters.Add( new SqlParameter("@UnitsInStock",SqlDbType.SmallInt));
SqlCmd.Parameters["@UnitsInStock"].Value=sUnitsInStock;
SqlCmd.Parameters.Add( new SqlParameter("@UnitsOnOrder",SqlDbType.SmallInt));
SqlCmd.Parameters["@UnitsOnOrder"].Value=sUnitsOnOrder;
SqlCmd.Parameters.Add ( new SqlParameter("@UnitPrice",SqlDbType.Money));
SqlCmd.Parameters["@UnitPrice"].Value= sUnitPrice;
SqlCmd.Parameters.Add (new SqlParameter("@ProductID",SqlDbType.SmallInt));
SqlCmd.Parameters["@ProductID"].Value=sProductID;SqlCon.Open();
SqlCmd.ExecuteNonQuery();
SqlCon.Close();DGProducts.EditItemIndex= -1;
Bind();} </script>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<style rel="stylesheet">H3 {
FONT: bold 11pt Verdana,Arial,sans-serif
}
.products {
FONT: 9pt Verdana,Arial,sans-serif
}
.productsHead {
FONT: bold 9pt Verdana,Arial,sans-serif; COLOR: white; BACKGROUND-COLOR: maroon
}
A {
TEXT-DECORATION: none
}
A:hover {
COLOR: maroon; TEXT-DECORATION: underline
}
</style>
</HEAD>
<body>
<form runat="server">
<h3>Northwind Inventory Management - VisualBasic.NET</h3>
<asp:datagrid id="DGProducts" runat="server" OnUpdateCommand="DGProducts_Update" OnCancelCommand="DGProducts_Cancel"
OnEditCommand="DGProducts_Edit" AutoGenerateColumns="False" Font-Size="12pt" HeaderStyle-CssClass="productsHead"
AlternatingItemStyle-BackColor="Tan" GridLines="None" BorderWidth="1px" Width="750px" CellPadding="4">
<AlternatingItemStyle BackColor="Tan"></AlternatingItemStyle>
<HeaderStyle CssClass="productsHead"></HeaderStyle>
<Columns>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="编辑" ></asp:EditCommandColumn>
<asp:BoundColumn DataField="ProductName" HeaderText="Product Name"></asp:BoundColumn>
<asp:BoundColumn DataField="UnitsInStock" HeaderText="Units in Stock"></asp:BoundColumn>
<asp:BoundColumn DataField="UnitsOnOrder" HeaderText="Units On Order"></asp:BoundColumn>
<asp:BoundColumn DataField="UnitPrice" HeaderText="Price Per Unit" DataFormatString="{0:C}"></asp:BoundColumn>
<asp:BoundColumn DataField="ProductID" ReadOnly="True" HeaderText="Product ID"></asp:BoundColumn>
</Columns>
</asp:datagrid></form>
</body>
</HTML>