2014-03-05 19 views
-1

用這個編碼來獲取數據,而我給fruitId,我需要找回fruitname,使用該它顯示了一些error..any一個幫助...如何使用這個編碼

string constring = ConfigurationManager.ConnectionStrings["conn"].ConnectionString; 



using (SqlConnection con = new SqlConnection(constring)) 
{ 
    using (SqlCommand cmd = new SqlCommand("savefruit11", con)) 
    { 
     con.Open(); 
     cmd.CommandType = CommandType.StoredProcedure; 
     cmd.Parameters.AddWithValue("@FruitsId", int.Parse(TextBox3.Text.Trim())); 
     cmd.Parameters.Add("@Fruitsname", SqlDbType.VarChar, 50); 
     cmd.Parameters["@Fruitsname"].Direction = ParameterDirection.Output; 
     cmd.ExecuteNonQuery(); 
     con.Close(); 
     TextBox4.Text = "Fruit Name:"+cmd.Parameters["@FruitName"].Value.ToString(); 
     } 
    } 

的存儲過程以上代碼。

use[FruitsDB] 
    SET ANSI_NULLS ON 
    GO 
    SET QUOTED_IDENTIFIER ON 
    GO 
    Create PROCEDURE [dbo].[savefruit11] 
    @FruitId INT, 
    @FruitName VARCHAR(50) OUTPUT 
    AS 
    BEGIN 
    SET NOCOUNT ON; 

    SELECT @FruitName = Fruitsname 
    FROM Fruits1 
    WHERE FruitsId = @FruitId 
    END 
+3

您收到了什麼錯誤? – Andrei

+2

而且可能存儲過程的代碼也會有幫助。 – Steve

+0

使用字符串_fruitName = cmd.ExecuteScalar(); –

回答

1

使用cmd.ExecuteQuerycmd.ExecuteScalar

//To Execute SELECT Statement 
ExecuteQuery() 

//To Execute Other Than Select Statement(means to Execute INSERT/UPDATE/DELETE) 
ExecuteNonQuery() 

與UDPATE

s的缺少參數名在存儲過程中

+0

沒有看到可能不是正確答案的存儲過程。 –

+0

謝謝你的回答... – rakulrc

+0

@ Md.Parvez Alam ...你的回答是正確的我申請了,我得到了結果..謝謝你..我是初學者到C#..謝謝你的寶貴評論... – rakulrc

4
cmd.Parameters.Add("@Fruitsname", SqlDbType.VarChar, 50); 
    cmd.Parameters["@Fruitsname"].Direction = ParameterDirection.Output; 
    cmd.ExecuteNonQuery(); 
    con.Close(); 
    TextBox4.Text = "Fruit Name:"+cmd.Parameters["@FruitName"].Value.ToString(); 

你的參數稱爲@Fruitsname,但你獲得的回報與@FruitName。第一個版本中還有一個s。通過將第一個@FruitsName更改爲@FruitName來使它們保持一致,這將與存儲過程中的內容相匹配。

或者,正如Henk在註釋中建議的那樣,創建一個包含參數名稱的常量字符串,以便在所有用法中保持一致。

+0

是的,擺脫魔術字符串將使生活更輕鬆,方法是確保參數名稱只有一個位置,並且要更改一個位置,並始終使用相同的值。 –

1

使用下面的示例的方式從MSDN

using (SqlConnection connection = new SqlConnection()) 
    { 
     string connectionStringName = this.DataWorkspace.AdventureWorksData.Details.Name; 
     connection.ConnectionString = 
      ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString; 

     string procedure = "HumanResources.uspUpdateEmployeePersonalInfo"; 
     using (SqlCommand command = new SqlCommand(procedure, connection)) 
     { 
      command.CommandType = CommandType.StoredProcedure; 

      command.Parameters.Add(
       new SqlParameter("@EmployeeID", entity.EmployeeID)); 
      command.Parameters.Add(
       new SqlParameter("@NationalIDNumber", entity.NationalIDNumber)); 
      command.Parameters.Add(
       new SqlParameter("@BirthDate", entity.BirthDate)); 
      command.Parameters.Add(
       new SqlParameter("@MaritalStatus", entity.MaritalStatus)); 
      command.Parameters.Add(
       new SqlParameter("@Gender", entity.Gender)); 

      connection.Open(); 
      command.ExecuteNonQuery(); 
     } 
    } 

參考 http://msdn.microsoft.com/en-us/library/jj635144.aspx

+0

謝謝你的鏈接 – rakulrc

+0

最受歡迎.... – Adel