[英]Query SQL Server database from C#
我正在尝试查询数据库,并使用用户传递到我的Web API上的get请求的数据来获取数据库以返回正确的数据。
我试过使用:
SqlConnection con = new SqlConnection(conString);
con.Open();
if (con.State == System.Data.ConnectionState.Open)
{
SqlCommand cmd = new SqlCommand();
}
但是,我不确定命令中需要放置什么。 我是否只写这样的东西:
WHERE forename, surname, caseid, postcode, telephone, email FROM TestDB.crm-data
还是我弄错了?
这是完整的代码,抱歉
public string Get(string forename, string surname, int? caseid, int? loanid, string postcode, string telephone, string email, string title)
{
SqlConnection con = new SqlConnection(conString);
con.Open();
if (con.State == System.Data.ConnectionState.Open)
{
SqlCommand cmd = new SqlCommand("SELECT * FROM crm-base WHERE forename");
}
}
这不是完美的,但是您就可以了。 您已经完成了其中的一部分:
using(SqlConnection con = new SqlConnection(conString))
{
con.Open();
var query=@"Select forename, surname, caseid, postcode, telephone, email
FROM TestDB.crm-data WHERE caseid=@caseId OR email=@email";
using(SqlCommand cmd = new SqlCommand(query, con))
{
cmd.Parameters.Add("@caseid",SqlDbType.Int).Value=1234;
cmd.Parameters.Add("@email", SqlDbType.VarChar, 250).Value="user@example.com";
var dtb=new DataTable();
var da=new SqlDataAdapter(com);
da.Fill(dtb)
//NOW dtb CONTAINS RECORDS FROM YOUR QUERY
}
}
如果查询具有常量参数,则可以使用原始查询。 但是,如果要传递不同的参数值(在where子句中),请使用SQLParameters。 这些是为防止SQL注入攻击而构建的。
查看此链接以获取一些示例。
您的查询不完整。 您添加了where子句,但未指定条件。
您需要执行与此类似的操作;
SqlCommand cmd = new SqlCommand($"SELECT * FROM crm-base WHERE forename='{forename}');
这将获取所有名称与传递给get方法的记录相同的记录。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.