समस्या यह है कि आप वास्तव में डेटाबेस के विरुद्ध कमांड निष्पादित नहीं कर रहे हैं। आप उपयोग करने के लिए InsertCommand को परिभाषित कर रहे हैं, लेकिन इसे निष्पादित नहीं किया जा रहा है।
उस कोड के आधार पर, मुझे नहीं लगता कि आपको डेटा एडाप्टर/डेटासेट का उपयोग करने की ज़रूरत है, बस डालने के लिए एक एसक्लकॉमैंड का उपयोग करें, जो अधिक हल्का है। कुछ इस तरह:
public void Storetxt(String txt)
{
//connection to the database
string connection = "Data Source=.\\sqlexpress2005;Initial Catalog=PtsKuratlas;Integrated Security=True";
SqlConnection conn = null;
SqlCommand cmd = null;
try
{
conn = new SqlConnection(connection);
cmd = new SqlCommand("INSERT INTO gti_analytics (Links) VALUES (@Link)", conn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@Link", txt);
conn.Open();
cmd.ExecuteNonQuery();
}
catch{//handle exceptions}
finally
{
if (cmd != null) cmd.Dispose();
if (conn != null)
{
if (conn.State == ConnectionState.Open) conn.Close();
conn.Dispose();
}
}
}
मैं आपके डीबी में इसके लिए ntext का उपयोग न करने की भी अनुशंसा करता हूं। यदि आपको वास्तव में यूनिकोड समर्थन की आवश्यकता है, तो nvarchar का उपयोग करें जो कि 4000 वर्णों तक जा सकता है प्री-एसक्यूएल 2005, या nvarchar (अधिकतम) जो SQL 2005 से ntext जितना स्टोर कर सकता है। यदि आपको यूनिकोड समर्थन की आवश्यकता नहीं है, तो इसके बजाय वर्चर का उपयोग करें (8000 वर्ण प्री-एसक्यूएल 2005, वर्चर (मैक्स) एसक्यूएल 2005 से आगे टेक्स्ट के समान अनुमति देता है)