を使用してWebサービスに接続しようとするとき、私はこのエラー(複数可)を取得:エラーデータベース
エラーCS1502:「System.Data.SqlClient.SqlConnection.SqlConnection(文字列のための最良のオーバーロードされたメソッドが一致し、 System.Data.SqlClient.SqlCredential)」は、いくつかの無効な引数を持ってい
エラーCS1503:引数2:から変換できません 'System.Web.WebPages.HelperResult' から 'System.Data.SqlClient.SqlConnection'
これは私のコードです:
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」など)を使用すると、コードが読みやすくなります。 – jason44107