विंडोज फोन में एसक्यूएलसी में सम्मिलन ऑपरेशन

मैं अपने डेटा को डाटाबेस में डालने की कोशिश कर रहा हूं लेकिन "टेबल (डीआईसी) 'पर ऑपरेशन बनाएं, अपडेट करें या हटाएं जैसे त्रुटि प्राप्त नहीं कर रही है क्योंकि इसकी कोई प्राथमिक कुंजी नहीं है।" मेरा डेटाबेस नाम "condrokotha_new.sdf" है और इसमें "dic" नाम की एक तालिका है जिसमें "अंग्रेजी" और "बांग्ला" नामक 2 कॉलम हैं। मैंने इस डेटाबेस को बनाम 2010 में एक और सी # प्रोजेक्ट में बनाया। फिर मैंने इस डेटाबेस को अपने विंडोज़फोन प्रोजेक्ट में इस्तेमाल किया। मैं डेटाबेस से डेटा दिखा सकता हूं लेकिन जब मैं डेटा डालने का प्रयास करता हूं तो मुझे त्रुटि मिल रही है।

मेरा कोड यहाँ है:

public partial class MainPage : PhoneApplicationPage
{
    condrokotha_newContext db = null;


   //Constructor
    public MainPage()
    {
        InitializeComponent();

        db = new condrokotha_newContext(condrokotha_newContext.ConnectionString);
        db.CreateIfNotExists();
        db.LogDebug = true;

    }

 private void fav_Click(object sender, RoutedEventArgs e)
    {
      add_new_words("cintakhela","ami");

    }


private void add_new_words(string e_word,string b_word)
    {
        using (condrokotha_newContext context = new condrokotha_newContext(condrokotha_newContext.ConnectionString))
        {
            Dic d = new Dic();

            d.English = e_word;
            d.Bangla = b_word;

            context.Dics.InsertOnSubmit(d);

            context.SubmitChanges();
        }
    }
  }

मेरा डेटा संदर्भ कोड इन जैसे:

    public static string ConnectionString = "Data Source=isostore:/condrokotha_new.sdf";

    public static string ConnectionStringReadOnly = "Data Source=appdata:/condrokotha_new.sdf;File Mode=Read Only;";

    public static string FileName = "condrokotha_new.sdf";

    public condrokotha_newContext(string connectionString) : base(connectionString)
    {
        OnCreated();
    }

  #region Extensibility Method Definitions
  partial void OnCreated();
  #endregion

    public System.Data.Linq.Table Dics
    {
        get
        {
            return this.GetTable();
        }
    }
}

[global::System.Data.Linq.Mapping.TableAttribute(Name="dic")]
public partial class Dic
{

    private string _English;

    private string _Bangla;

    public Dic()
    {
    }

    [global::System.Data.Linq.Mapping.ColumnAttribute(Name="english", Storage="_English", DbType="NVarChar(1000)")]
    public string English
    {
        get
        {
            return this._English;
        }
        set
        {
            if ((this._English != value))
            {
                this._English = value;
            }
        }
    }

    [global::System.Data.Linq.Mapping.ColumnAttribute(Name="bangla", Storage="_Bangla", DbType="NText", UpdateCheck=UpdateCheck.Never)]
    public string Bangla
    {
        get
        {
            return this._Bangla;
        }
        set
        {
            if ((this._Bangla != value))
            {
                this._Bangla = value;
            }
        }
    }
}

` मैं अपने डेटाबेस में अपना डेटा कैसे डाल सकता हूं ?? क्या कोई ऐसा है जो इस में मदद कर सकता है ??

0

1 उत्तर

उदाहरण के लिए आपके पास यह है

    SampleDataContextDataContext db = new SampleDataContextDataContext();
Employee emp = new Employee() {
      FirstName = "Experts",
      Lastname = "Comment",
      Address = "[email protected]"
}
db.Employees.InsertOnSubmit(emp);
db.SubmitChanges();

जब आप एक नई पंक्ति डालने का प्रयास करते हैं तो उपर्युक्त कोड आपको वही त्रुटि देगा। इसका कारण यह है कि LINQ प्राथमिक कुंजी के बिना तालिका में डेटा डालने की सुविधा प्रदान नहीं करता है। इस बिंदु पर आपके पास दो विकल्प हैं।

1. एक स्टोर प्रक्रिया बनाएं और इसे LINQ से कॉल करें।

SampleDataContextDataContext db = new SampleDataContextDataContext();
db.InsertEmployeeData("Experts","Comment", "[email protected]");

यहां InsertEmployeeData एक संग्रहीत प्रक्रिया है, और इसे कोड से बुलाया जाता है।

2. LINQ का उपयोग करके एक सम्मिलन कथन बनाएं और निष्पादित करें।

SampleDataContextDataContext db = new SampleDataContextDataContext();

string insertStatement = "Insert into Employee values('Experts', 'Comment','[email protected]')";
db.ExecuteQuery(insertStatement);

यहां सम्मिलित करें सामान्य SQL क्वेरी है और LINQ ExecuteQuery विधि का उपयोग करके निष्पादित किया गया है।

0
जोड़ा