如果未插入任何列,则SQL列显示-1

时间:2012-09-26 17:34:21

标签: asp.net sql-server-2008

在我的SQL Server表中,如果列值(整数)为空,则插入值为-1。如果我从表中选择所有列值并在ASP.net网格上显示它在指定列上显示-1。我不想把它显示为-1它需要显示像“null或none”之类的东西。怎么能得到这个?

4 个答案:

答案 0 :(得分:0)

使该列无效并且不为该列设置默认值,并在asp.net页面中检查是否存在null然后将其替换为bank或“none”

答案 1 :(得分:0)

因此,无论是在您的更新语句中,还是在您正在使用的驱动程序中,''都没有可能被错误处理。如果你想要NULL,你必须插入NULL。

  • 插入(mytable ID,SomeNum,SomeText)值(1,'','你好 世界')Nope
  • 插入(mytable ID,SomeNum,SomeText)值 (1,'你好世界')Nope
  • 插入(mytable ID,SomeNum,SomeText) 值(1,NULL,'hello World')是的。

所有在someNum中都会产生不同的值。第一个可以抛出一个类型转换,第二个我相信结果为-1而第三个会给你你正在寻找的结果。

如果您正在使用存储过程,则传入的参数未得到适当处理。

答案 2 :(得分:0)

1您可以在DataBase中插入null。 (在您的数据中使用Type Nullable以匹配)

2您还可以在Gridview中处理您的信息,方法是删除-1并替换为空值。

 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;

    }

  }

答案 3 :(得分: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"];
    }
}