는 2014 SQL 서버 내 저장 프로 시저 :잘못된 열 이름은
if (TableFunctions.doesTableExist(ComboBoxSelectedProfile.SelectedItem + "Users", dbConnectionString))
{
// DynamicSQL
using (SqlCommand command = new SqlCommand("spSelectUserFromProfileUsers", connection))
{
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@TableName", ComboBoxSelectedProfile.SelectedItem + "Users");
command.Parameters.AddWithValue("@User", TextBoxUserName.Text);
command.ExecuteNonQuery();
}
}
내가 오류를 받고 있어요 : 여기
CREATE PROCEDURE [dbo].[spSelectUserFromProfileUsers]
@TableName NVARCHAR(20),
@User NVARCHAR(20)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @query NVARCHAR(MAX);
SET @query = 'SELECT * FROM ' + QUOTENAME(@TableName) + ' WHERE Users =' + @User
EXECUTE sp_executesql @query
END
및 Visual Studio에서 내 코드입니다 :
Invalid column name /Text that I entered the textbox/
오랫동안 해결책을 찾고 있었지만 아무 것도 찾을 수 없었습니다. 도움을 많이 주셔서 감사합니다.
결과는 다음과 같습니다. SELECT [from YourTable] WHERE Users = Some_User_Name' .... 문제가 보이십니까? 'Some_User_Name'은'Some_User_Name''이어야합니다. – Lamak
하지만'@User '를 추가하면 @User를 매개 변수로 재확인하지 않습니다 – WeinForce
그리고이 코드는 여전히 ti sql을 엽니 다. 주입 보안 취약점은 sproc 내부의 연결을 사용하기 때문에 발생합니다. –