아래와 같이 @name을 사용 했으므로 SQL 테이블에서 데이터를 삽입 또는 업데이트하거나 삭제하는 동안 "@"을 사용하는 이유를 알고 싶습니다.우리가 SQL 테이블에서 데이터를 삽입하거나 업데이트 또는 삭제하는 동안 "@"를 사용하는 이유
cmd.Parameters.Add(new SqlParameter("@fname", txtfname.Text));
아래와 같이 @name을 사용 했으므로 SQL 테이블에서 데이터를 삽입 또는 업데이트하거나 삭제하는 동안 "@"을 사용하는 이유를 알고 싶습니다.우리가 SQL 테이블에서 데이터를 삽입하거나 업데이트 또는 삭제하는 동안 "@"를 사용하는 이유
cmd.Parameters.Add(new SqlParameter("@fname", txtfname.Text));
OK, 내 앞에 포스터에 악의가 (이 당신이 그것을 지정하지 않으면 매개 변수 이름에 @를 추가 SqlParameter에 개체에 문서화되지 않은 기능입니다.) 그러나 나는 시도 할 것이다 가능한 한 간단하게 설명하여 7 살짜리도 이해합니다. : 당신이 "다만 정확한 데이터 유형 또는 정확한 이름이 사용됩니다 무엇을 명확하게하지"을 때 .SQL에서 내 경험 ' @'에서
사용됩니다. "Later"당신은 '@'의 정확한 값이 무엇인지 지적하고 있습니다.
예를 들어, 누군가가 그것을받은 모든 사람의 이름이 들어있는 거대한 .SQL 쿼리를 개발했다고 가정 해 봅니다.모든 사람이 단지 @YOURNAME에서 자신의 이름을 작성하고 자동으로 (시작시)에 쿼리를 변환합니다 위해
SELECT column_name,column_name FROM table_name WHERE column_name = @YOURNAME;
@YOURNAME = 'John Doe';
그래서,이 경우, 그것은 쉽게 :
SELECT column_name,column_name FROM table_name WHERE column_name = 'John Doe';
PS : 나는 미안 해요 구문 오류 및 잘못된 용어에 대해서는 잘 알고 있지만 지금까지 이해 했어야합니다. :)
다음을 참조하십시오 경우 ParameterName 양식 @paramname에 지정된 SqlParameter.ParameterName Property - MSDN
. 매개 변수를 사용하는 SqlCommand를 실행하기 전에 매개 변수를 설정해야합니다. 파라미터 의 값
@
경우SqlCommand cmd = new SqlCommand("Select * from yourTable where ID = @ID", conn); ^^^^^^^ //This identifies the parameter
다음은 추가 파라미터 이름이 제공되지 않는 명령 텍스트에 differentiatd되도록
@
SqlCommand
의해 사용된다. 다음 소스 코드를 봐
(taken from here)
internal string ParameterNameFixed {
get {
string parameterName = ParameterName;
if ((0 < parameterName.Length) && ('@' != parameterName[0])) {
parameterName = "@" + parameterName;
}
Debug.Assert(parameterName.Length <= TdsEnums.MAX_PARAMETER_NAME_LENGTH, "parameter name too long");
return parameterName;
}
}
편집 :
당신은 다음의 경우를 고려 매개 변수 @
기호를 사용하지 않는 경우.
using (SqlConnection conn = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand())
{
conn.Open();
cmd.CommandText = "SELECT * from yourTable WHERE ID = ID";
cmd.Connection = conn;
cmd.Parameters.AddWithValue("ID", 1);
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
}
}
이 SELECT * from yourTable WHERE 1=1
로 번역하기 때문에 위의 당신이 매개 변수 ID
에 대한 위의 @
를 사용하는 경우 SQL Server의 ID =1
변수 및 매개 변수에 대한 레코드 만 얻을 것이다, 모든 레코드를 가져옵니다 앞에 @ 기호가 붙습니다.
예 :
create procedure Something
@Id int,
@Name varchar(100)
as
...
데이터베이스와 통신하는 C# 코드에서 매개 변수 개체를 만들, 당신은 또한 @ 문자를 가진 매개 변수 이름을 지정합니다.
변수 사용 예제는 변수를 실제로 사용할 수있는 방법을 보여주지 않습니다. 'where' 조건이 필요하다면 변수 나 리터럴 값을 사용할 수 없습니다. 예를 들어'... where column_name = @ YOURNAME'과 같은 것이 필요할 것입니다. – Guffa
네 말이 맞다! :} – Placeholder