protected void Button1_Click(object sender, EventArgs e)
{
if (this.TextBox1.Text != "")
{
OracleConnection myConn = GetConnection();
myConn.Open();
string str = DropDownList1.SelectedValue.ToString();
string sqlStr = "select * from JIAOYIXINXI where str =:str";
OracleCommand myCmd = new OracleCommand(sqlStr, myConn);
myCmd.Parameters.Add("str", OracleType.VarChar, 100).Value = this.TextBox1.Text.Trim(); OracleDataAdapter myDa = new OracleDataAdapter(myCmd);
DataSet myDs = new DataSet();
myDa.Fill(myDs);
if (myDs.Tables[0].Rows.Count > 0)
{
GridView1.DataSource = myDs;
GridView1.DataBind();
}
else
{
Response.Write("<script>alert('没有相关记录') </script>");
}
myDa.Dispose();
myDs.Dispose();
myConn.Close();
}
}
以上是代码。(.net 2.0 oracle 9i)
我想要实现的功能是先通过DropDownList选择一个字段名,然后在textbox中输入改字段名对应的数值,点击查询后在Gridview中显示查到的信息,我将DropDownList1.SelectValue.toString()赋值给了str,然后将相关的字段名用str代替,可是为什么不能实现呢?报错是ora-00904 无效列名 请大侠指点一二,很着急。。
{
if (this.TextBox1.Text != "")
{
OracleConnection myConn = GetConnection();
myConn.Open();
string str = DropDownList1.SelectedValue.ToString();
string sqlStr = "select * from JIAOYIXINXI where str =:str";
OracleCommand myCmd = new OracleCommand(sqlStr, myConn);
myCmd.Parameters.Add("str", OracleType.VarChar, 100).Value = this.TextBox1.Text.Trim(); OracleDataAdapter myDa = new OracleDataAdapter(myCmd);
DataSet myDs = new DataSet();
myDa.Fill(myDs);
if (myDs.Tables[0].Rows.Count > 0)
{
GridView1.DataSource = myDs;
GridView1.DataBind();
}
else
{
Response.Write("<script>alert('没有相关记录') </script>");
}
myDa.Dispose();
myDs.Dispose();
myConn.Close();
}
}
以上是代码。(.net 2.0 oracle 9i)
我想要实现的功能是先通过DropDownList选择一个字段名,然后在textbox中输入改字段名对应的数值,点击查询后在Gridview中显示查到的信息,我将DropDownList1.SelectValue.toString()赋值给了str,然后将相关的字段名用str代替,可是为什么不能实现呢?报错是ora-00904 无效列名 请大侠指点一二,很着急。。
解决方案 »
- 左边一些选项的标题,右边是具体内容
- 我的电脑--属性--外观--“窗口和按钮”修改为:Windows 经典。用c#代码怎么实现?修改注册表里面的那些字段呢?
- 在 ASP.NET程序实现将excel导入到数据库
- C#建模工具调查
- 怎么用timer定时每天8点执行 private void OnOpen_Click(object sender, EventArgs e)这个事件啊?给点代码,我实在是弄不出来了
- POS机打印的问题
- 水晶报表疑难问题(相信很多人都会碰到)
- 现在还有没有像“程序员大本营”一样,有本论坛内容的光盘阿?
- 请各位高手进来各抒己见,讨论有分,见解精辟者另送分
- WaitHandle的一个小问题
- 请教各位大侠RichTextBox的问题!
- 一个下拉框问题 请大家帮忙
应该为
string sqlStr = "select * from JIAOYIXINXI where "+str+" =:str";
string sql="select * from tab_name where 1=1";
sql+string.IsNullOrEmpty(str)?"":"";
“select * from tab_name where name=@name”
MyCommand.Parameters.AddWithValue("name", name);
string sqlStr = "select * from JIAOYIXINXI where "+str+" =:str";//这句话等同于
String sqlStr="select * from JIAOYIXINXI where ";
sqlStr+=str;
sqlStr+=" =:str";你可以在运行时,把sqlStr添加到监视,或在即时窗口中查看生成的sql语句,你就知道是为什么了