[英]Have to fetch data from database and enter into textbox
我必须从数据库中获取数据并在我的表单中输入文本框。我的表单有文本框和gridview(仅适用于某些文本框)。我必须根据选定的网格视图cell = PROJECTNAME从数据库中获取数据并输入其他匹配的文本框标准。 我已为单个文本框完成了我的编码部分,并显示“{”ORA-00904:\\“PRIME \\”:无效的标识符“}”
请帮助我以下
OracleConnection con = new OracleConnection(System.Configuration.ConfigurationManager.ConnectionStrings["TEST"].ToString());
con.Open();
OracleCommand cmd = con.CreateCommand();
string prime = gdDisplay.SelectedRow.Cells[1].Text;
cmd.CommandText = "Select DESCRIPTION FROM CMPPOJECT WHERE PROJECTNAME = prime";
string str= cmd.ExecuteScalar().ToString();
txtDescription.Text = str;
更改
cmd.CommandText = "Select DESCRIPTION FROM CMPPOJECT WHERE PROJECTNAME = prime";
至
cmd.CommandText = "Select DESCRIPTION FROM CMPPOJECT WHERE PROJECTNAME = 'prime'";
你可以做这样的事情
没有必要继续调用.ToString()
作为getValue
已经是一个字符串。 并且还需要注意字符串值必须在''
单引号中引用。
cmd.CommandText = "Select DESCRIPTION FROM CMPPOJECT WHERE PROJECTNAME = 'prime'";
var str= cmd.ExecuteScalar();
我们可以检查一下该值是否为null
if (str!= null) {
txtDescription.Text = str.ToString();
}
除此之外你也可以使用它
cmd.CommandText = "Select DESCRIPTION FROM CMPPOJECT WHERE PROJECTNAME = 'prime'";
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
txtDescription.Text = reader["DESCRIPTION"].ToString().Trim();
}
您可以通过将查询更改为来获得结果
cmd.CommandText = "Select DESCRIPTION FROM CMPPOJECT WHERE PROJECTNAME = 'prime'";
即通过向传递标识符添加引号。 但这样做并不安全 ,可能会暴露出SQL注入问题。 例如,如果有人试图使用关键字搜索 - > Where ProjectName = 'Anil's Project' ,请注意有三个引号会导致查询混淆
一个安全的方法和良好的实践从一开始就是使用参数。 这很简单。 喜欢
cmd.CommandText = "Select DESCRIPTION FROM CMPPOJECT WHERE PROJECTNAME = @ProjectName";
cmd.Parameters.AddWithValue("@ProjectName", "prime"); // don't use additional quotes inside like "'prime'"
string str= cmd.ExecuteScalar().ToString();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.