none
請問在C#中@ 的用法 RRS feed

  • 問題

  •  您好:

    請問
     1.在連線字串中加@,是為了避掉裡面的跳多字元嗎?

     private string _connectionString =@"server=192.168.1.1\SQLExpres.....";   


     2.SqlCommand 中
     最前面的@"INSERT  ,是宣告 後面的字串 有變數嗎?
     @OrderID 是指定變數名稱嗎?

     IDbCommand cmd = new SqlCommand(
                    @"INSERT INTO Orders
                    (OrderID, CustomerID, EmployeeID, OrderDate  )
                    VALUES
                    (@OrderID, @CustomerID, @EmployeeID, @OrderDate)"
                    );

    謝謝!    
    2016年3月5日 上午 08:50

解答

  • 1、 是的

    2、 是因為多行

    如果你不用 @ 的話,要用 + 把字串串起來

    像這樣

     IDbCommand cmd = new SqlCommand(
                    "INSERT INTO Orders" +
                    " (OrderID, CustomerID, EmployeeID, OrderDate  )"+
                    "VALUES "+
                    "(@OrderID, @CustomerID, @EmployeeID, @OrderDate)"
                    );

    • 已標示為解答 softballnow 2016年3月6日 上午 01:16
    2016年3月5日 上午 09:26
  • 1、 是的

    2、 是因為多行

    如果你不用 @ 的話,要用 + 把字串串起來

    像這樣

     IDbCommand cmd = new SqlCommand(
                    "INSERT INTO Orders" +
                    " (OrderID, CustomerID, EmployeeID, OrderDate  )"+
                    "VALUES "+
                    "(@OrderID, @CustomerID, @EmployeeID, @OrderDate)"
                    );


    我倒是沒注意到多行的問題, 多行的確要加上 "@"

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    • 已標示為解答 softballnow 2016年3月6日 上午 01:16
    2016年3月5日 上午 09:31
    版主

所有回覆

  • (1)  位於字串前面的 @ 是為了處理逸出字元而設定的 

    字串 (C# 程式設計手冊)

    (2) 在字串內的 @ 則是因為你的命令是要送到 MS SQL Server 中, 所以遵循 Transact SQL 語法的變數宣告, 在 Transact SQL 中, 變數總是要加上 @開頭

    DECLARE @local_variable (Transact-SQL)


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。





    2016年3月5日 上午 09:22
    版主
  • 1、 是的

    2、 是因為多行

    如果你不用 @ 的話,要用 + 把字串串起來

    像這樣

     IDbCommand cmd = new SqlCommand(
                    "INSERT INTO Orders" +
                    " (OrderID, CustomerID, EmployeeID, OrderDate  )"+
                    "VALUES "+
                    "(@OrderID, @CustomerID, @EmployeeID, @OrderDate)"
                    );

    • 已標示為解答 softballnow 2016年3月6日 上午 01:16
    2016年3月5日 上午 09:26
  • 1、 是的

    2、 是因為多行

    如果你不用 @ 的話,要用 + 把字串串起來

    像這樣

     IDbCommand cmd = new SqlCommand(
                    "INSERT INTO Orders" +
                    " (OrderID, CustomerID, EmployeeID, OrderDate  )"+
                    "VALUES "+
                    "(@OrderID, @CustomerID, @EmployeeID, @OrderDate)"
                    );


    我倒是沒注意到多行的問題, 多行的確要加上 "@"

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    • 已標示為解答 softballnow 2016年3月6日 上午 01:16
    2016年3月5日 上午 09:31
    版主
  • 謝謝大家!

    2016年3月6日 上午 01:16