【发布时间】:2016-10-27 14:18:13
【问题描述】:
我收到此错误:
错误 CS1502:'System.Data.SqlClient.SqlConnection.SqlConnection(string, System.Data.SqlClient.SqlCredential)' 的最佳重载方法匹配有一些无效参数
错误 CS1503:参数 2:无法从“System.Data.SqlClient.SqlConnection”转换为“System.Web.WebPages.HelperResult”
这是我的代码:
public string NumeroFactura(string NoDeFactura)
{
string DtsConnection = "ITLIGENCIA-POS\\SQLEXPRESS; Initial Catalog = SSOLINVBASESQL; Trusted_Connection = Yes";
SqlConnection Con = new SqlConnection(DtsConnection);
Con.Open();
SqlDataAdapter CMD = new SqlConnection("select * from INVE_FACTURAS_PRODUCTOS_ENC where NFACTURA='"+ NoDeFactura+ "'",Con);
DataSet DS = new DataSet();
CMD.Fill(DS, "DATOS");
DataTable TableNFACTURA = DS.Tables[0];
string NFACTURA = TableNFACTURA.Rows[0]["NFACTURA"].ToString();
return "El número de factura es" + NFACTURA;
}
【问题讨论】:
-
想想如果恶意用户可以在 NoDeFactura 中输入一些文本并输入
blah'; DROP TABLE INVE_FACTURAS_PRODUCTOS_ENC;--会发生什么 -
只是一个想法:C# 中的常见做法是不将局部变量或方法参数的名称大写。当您使用标题大小写时(例如“DtsConnection”),它看起来像一个类名或方法名,而当您使用全部大写(例如“NFACTURA”)时,它看起来像一个常量的名称。使用驼峰式大小写(“dtsConnection”、“con”、“cmd”等)将使您的代码更具可读性。
标签: c# sql-server asp.net-mvc asp.net-mvc-4 razor