首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回修改的DataSet

返回修改的DataSet
EN

Stack Overflow用户
提问于 2013-02-27 15:46:46
回答 1查看 284关注 0票数 0

我有下面的WebMethod-

代码语言:javascript
复制
[WebMethod]

public DataSet fillGridview(string sql)
{
    using (OdbcConnection cnn = new OdbcConnection(DBcon))
    {
        if (string.IsNullOrEmpty(sql))
        {
            sql = "statement";
        }



        OdbcDataAdapter da = new OdbcDataAdapter(sql, cnn);
        DataSet ds = new DataSet();
        da.Fill(ds, "DB.TABLE");

        char tick = (char)0x221A;
        char untick = (char)'x';
        int r = 0;
        foreach (DataRow row in ds.Tables[0].Rows)
        {

            if (ds.Tables[0].Rows[r]["intValue"].ToString() == "-1")
            {
                ds.Tables[0].Rows[r]["intValue"] = untick + " No";
            }
            else
            {
                ds.Tables[0].Rows[r]["intValue"] = tick + " Yes";
            }

            r = r + 1;

        }


        return ds;

    }

当试图将intValue1转换为√ Yes-1转换为x No时,这种情况就会中断。

错误是-

输入字符串的格式不正确。无法将< Yes>存储在intValue列中。预期类型为Int32。

这个是可能的吗?

EN

回答 1

Stack Overflow用户

发布于 2013-02-27 15:54:46

intValueInt32,因此不能将其设置为string值,这正是您在foreach循环中要做的。

您不需要int r = 0;变量来访问foreach循环中的行,因为您正在设置DataRow row,这将为您提供当前行。

如果试图将GridView上的列的值设置为新的字符串值,则可以使用GridView.RowDataBound事件根据隐藏列中的值设置一列的值。

或者,可以向DataTable中添加字符串列并绑定到该列,请参见下面的内容:

代码语言:javascript
复制
DataTable dt = ds.Tables[0];

dt.Columns.Add("TickedValue", typeof(String));

foreach (DataRow row in dt.Rows)
{

    if (row["intValue"].ToString() == "-1")
    {
        row["TickedValue"] = untick + " No";
    }
    else
    {
        row["TickedValue"] = tick + " Yes";
    }        
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15116285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档