我嘗試在C#中使用SQLServer Management Studio 2014中的CLR。現在一切正常,除非我開始插入參數。帶參數的SQLServer CLR
如何在CLR中插入參數並將其用於PROC
? 我試圖把這些參數的功能括號:
public static void InsertInto(SqlString street, SqlInt32 number)
{
using(SqlConnection conn = new SqlConnection("context connection = true"))
{
SqlCommand comm = new SqlCommand();
comm.CommandText = "INSERT INTO TABLE_CLRTEST (COLRW_STREET, COLRW_NUMBER) VALUES("+street+","+number+")";
我似乎無法以連接的SqlString,它不會讓我用一個字符串無論是。
而在C#和我想是這樣的:
comm.CommandText = "INSERT INTO TABLE_CLRTEST (COLRW_STREET, COLRW_NUMBER) VALUES(@street,@number)";
comm.Parameters.Add("@street", SqlDbType.VarChar,50);
comm.Parameters.Add("@number", SqlDbType.Int);
當我使用這是出現以下錯誤:CREATE PROCEDURE failed because parameter counts do not match.
所以仍然一無所獲。
你們是否知道發生了什麼?如果你需要澄清,請問。
預先感謝
編輯: 下面提供的代碼片段正在工作。看起來Strings不起作用。
public static void updateTest(SqlInt32 lo, SqlInt32 la)
{
using (SqlConnection conn = new SqlConnection("context connection = true"))
{
conn.Open();
SqlCommand update = new SqlCommand();
update.CommandText = "UPDATE TABLE_CLRTEST SET COLRW_LONGITUDE = " + lo + ", COLRW_LATITUDE = " + la + "";
update.Connection = conn;
update.ExecuteNonQuery();
conn.Close();
}
}
_I似乎無法concateate_您可以。你只需要使用'''作爲字符值(在你的情況下它是'street')。但參數化查詢總是首選。順便說一句,無論如何,「CREATE PROCEDURE」是什麼? – 2014-09-24 12:30:17
Plese,向我們展示您創建clr程序的'wrapper'的腳本 – 2014-09-24 12:32:15
嘗試'AddWithValue'例如'comm.Parameters.AddWithValue(「@ street」,street)' – 2014-09-24 12:32:20