判断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