从C#查询SQL Server数据库
我想查询数据库并让它使用用户传入我的Web API上的获取请求的数据返回正确的数据。从C#查询SQL Server数据库
我已经尝试使用:
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 [email protected]"Select forename, surname, caseid, postcode, telephone, email
FROM TestDB.crm-data WHERE [email protected] OR [email protected]";
using(SqlCommand cmd = new SqlCommand(query, con))
{
cmd.Parameters.Add("@caseid",SqlDbType.Int).Value=1234;
cmd.Parameters.Add("@email", SqlDbType.VarChar, 250).Value="[email protected]";
var dtb=new DataTable();
var da=new SqlDataAdapter(com);
da.Fill(dtb)
//NOW dtb CONTAINS RECORDS FROM YOUR QUERY
}
}
所以我可以做返回dtb? –
@andywilson是的,你可以返回数据表。但请使用更新的方法添加参数。 – TheVillageIdiot
@marc_s你会用什么来代替addwithvalue是否有一个简短的内联方式? –
你可以使用原始查询,如果查询具有恒定的参数。但是,如果您传递参数的不同值(在where子句中) - 请使用SQLParameters。这些是为防止SQL注入攻击而构建的。
看看这个链接的一些例子。
我将如何做到这一点与多个参数,并通过获取请求传入,因为它不告诉我我怎么样需要能够做到这一点,告诉我如何使用本地参数 –
你应该在你的答案中包含一些代码来说明链接文章/博客文章/小提琴等的主要点。 – TheVillageIdiot
您的查询不完整。您在不指定条件的情况下添加了where子句。
你需要做类似的事情;
SqlCommand cmd = new SqlCommand($"SELECT * FROM crm-base WHERE forename='{forename}');
这将抓取所有记录,forename等于传入get方法的记录。
不要使用字符串连接 - 使用**显式参数** - 避免SQL注入攻击!** –
'WHERE姓,名,caseid,邮编,电话,电子邮件FROM TestDB.crm-data'?你的意思是'SELECT姓,姓,caseid,邮编,电话,电子邮件FROM TestDB.crm-data'? –
你错过了某些元素之前“WHERE” –
@EmanuelPirovano我的意思是,应该去什么sqlcommand() –