在我的 SQL Server 表中,如果列值(整数)什么都不是,那么它的插入值为 -1。如果我从表中选择所有列值并显示在 ASP.net 网格上,它会在指定列上显示-1。我不想将其显示为 -1 它需要显示为“null or none”之类的东西。怎么能得到这个?
问问题
86 次
4 回答
0
不要调用事件并避免不必要的回发到服务器,而是在从数据库中获取 DataTable 之后以及在 Databind() GridView 之前编写以下代码。
protected void Page_Load(object sender, EventArgs e)
{
//DataTable dt = GetDataFromDatabase();
DataTable dt = new DataTable();
foreach (DataRow row in dt.Rows)
{
row["columnName"] = row["columnName"]== "-1" ? "none" : row["columnName"];
}
}
于 2012-09-27T18:57:12.827 回答
0
使该列可以为空,并且不要为该列设置默认值,并在 asp.net 页面中检查是否有空值,然后将其替换为银行或“无”
于 2012-09-26T17:39:35.300 回答
0
因此,无论是在您的更新声明中,还是在您正在使用的驱动程序中,'' 都不会被错误处理。如果你想要 NULL,你必须插入 NULL。
- 插入 (mytable ID, SomeNum, SomeText) 值 (1,'','hello World') 不
- 插入 (mytable ID, SomeNum, SomeText) 值 (1,,'hello World') 不
- 插入(mytable ID,SomeNum,SomeText)值(1,NULL,'hello World')是的。
都会在 someNum 中产生不同的值。第一个可能会引发类型转换,第二个我相信结果是-1,第三个会给你你正在寻找的结果。
如果您使用的是存储过程,则传入的参数没有得到适当的处理。
于 2012-09-26T17:40:11.043 回答
0
1 您可以在数据库中插入 null。(在您的数据中,您使用 Type Nullable 来匹配)
2 您还可以通过删除 -1 并替换为空值来处理 Gridview 中的信息。
void GridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[1].Text = (e.Row.Cells[1].Text == "-1" ) ? "" : e.Row.Cells[1].Text;
}
}
于 2012-09-26T17:41:41.713 回答