当前位置:编程学习 > C#/ASP.NET >>

判断DataTable行中的值

 string preID = this.TextBox1.Text;
        string Meet = "asd";


        string connStr = WebConfigurationManager.ConnectionStrings["conn"].ConnectionString;
        SqlConnection connection = new SqlConnection(connStr);
        string strSQL = "select preId,Meet from preferential where PreId=@preID ";
        SqlCommand cmd = new SqlCommand(strSQL, connection);
        cmd.Parameters.Add("@preID", DbType.String).Value = preID;


        //cmd.Parameters.AddWithValue("preID", preID);
        connection.Open();

        //SqlDataReader read = cmd.ExecuteReader();

        DataTable dtSQL = new DataTable();
        SqlDataAdapter sda = new SqlDataAdapter(cmd);
        //sda.Fill(dtSQL);



        bool isfind = false;
        [color=#FF0000]dtSQL.Rows.Add("");[/color]

        foreach (DataRow r in dtSQL.Rows)
        {

            if (r["PreId"].ToString() == preID.ToString())
            {
                this.TextBox1.Text = "";
                this.Label1.Text = "xxx";
                isfind = true;
            }
        }
        if (isfind == false)
        {
            if (dtSQL.Rows.Count >= 0)
            {
                this.TextBox1.Text = null;
                DataTable dt = (DataTable)ViewState["dt"];
                DataRow dr = dt.NewRow();
                //dr["preID"] = dr["preID"].ToString();
                //dr["Meet"] = dr["Meet"].ToString();
                dr[0] = preID;
                dr[1] = dtSQL.Rows[0]["Meet"].ToString();
                dt.Rows.Add(dr);

                ViewState["dt"] = dt;
                Repeater1.DataSource = ViewState["dt"];
                Repeater1.DataBind();

            }
            else if (TextBox1.Text == "")
            {
                this.Label1.Text = "";
            }
        }
    }

红字部分给了值后绿字有值
如果红字注释 则绿字无值 蓝色报错说 DataTable中没有行


如何解决



--------------------编程问答--------------------  bool isfind = false;
下面首先要判断dtSQL 是否为null,然后再执行之后的操作 --------------------编程问答-------------------- dtSQL有值啊
dtSQL.Rows.Add("");
就把数据库的值给DataTable了 --------------------编程问答-------------------- 就是说要判断如果你输入的值和 Repeater1中的值一样就无法输入
现在 Repeater1里的值放在DataTable里,把值从数据库里取出来时候DataTable就有值了判断就无效了 --------------------编程问答-------------------- //sda.Fill(dtSQL);
注释掉怎么得到值?


[ dtSQL有值啊
dtSQL.Rows.Add("");
就把数据库的值给DataTable了  ]

谁说这是把数据库的值给DataTable了? --------------------编程问答-------------------- 求楼上前辈赐教 --------------------编程问答-------------------- sda.Fill(dtSQL);保留的
红字应该是注掉的 发帖时候弄错了 --------------------编程问答-------------------- 现在的代码  和现在的状况?   再发次代码 ,再详细说下症状 --------------------编程问答-------------------- 你可以试一下,下面的
if (r["PreId"].Equals(preID))
{
   this.TextBox1.Text = "";
   this.Label1.Text = "xxx";
   isfind = true;
 
}
 
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,