[ad_1]
CREATE PROCEDURE [dbo].[GetOutletInfo] @PermitID int AS SELECT * FROM Outlets WHERE PermitID=@PermitID GO
फिर अपने C# कोड में, मैं इसे चलाता हूं:
var cn = new SqlConnection(connectionString); SqlDataAdapter da; DataSet ds = new DataSet(); da = new SqlDataAdapter("GetOutletInfo", cn); da.SelectCommand.CommandType = CommandType.StoredProcedure; da.SelectCommand.Parameters.Add("@PermitID", SqlDbType.Int).Value = PermitID; da.Fill(ds, "GetOutletInfo");
निष्पादन पर, da.Fill इस अपवाद को फेंकता है:
System.FormatException
HRपरिणाम=0x80131537
संदेश=पैरामीटर मान को स्ट्रिंग से Int32 में परिवर्तित करने में विफल।
स्रोत=सिस्टम.डेटा.एसक्यूएलक्लाइंट
मैंने गूगल पर घंटों तक अलग-अलग चीजें खोजकर अपना सिर खुजलाया, लेकिन कोई सफलता नहीं मिली। किसी भी संकेत या अंतर्दृष्टि की सराहना की जाएगी। धन्यवाद
मैंने क्या प्रयास किया है:
This query works (since it does not need a parameter) SqlDataAdapter da; DataSet ds = new DataSet(); da = new SqlDataAdapter("GetInspectionLettersQueue", cn); da.SelectCommand.CommandType = CommandType.StoredProcedure; da.Fill(ds, "GetInspectionLettersQueue");
मैंने Parameters.Add कमांड में जोड़ने से पहले पैरामीटर को int32 में कास्ट करने का प्रयास किया जो काम नहीं आया।
समाधान 1
ख़ैर, मुझे लगता है कि मुझे और कॉफ़ी की ज़रूरत है। यह पता चला कि PermitID एक स्ट्रिंग थी, लेकिन इसे “foo” पर सेट किया गया था – ओह – कोई आश्चर्य नहीं – देखने के लिए धन्यवाद, एक बार जब मैंने इसे “42” पर सेट किया तो यह काम कर गया।
मुझे भी नहीं लग रहा
समाधान 2
यदि मुझे अपना एसक्यूएल याद है, तो सभी पैरामीटर प्रकार स्ट्रिंग होने चाहिए, पूर्णांक नहीं। उसकी कोशिश करो।
[ad_2]
コメント