hi,
  here m suffering from retrieivng code...i m saving spinner value in
database with ur dictionary collection...now  i wnt to populate the spinner
with the coursename based on database corresponding value...
i wrote some code to populate the spinner (retreive code )but it is not
working...
for all the times my task is half done...plz help me to retrieve code:
in previous spinner ex i did the retrieve with following code using
arrayadapter...
                while (sdr.Read())
                {                    
                    string str = Convert.ToString(sdr["SCOURSE"]);
                    Spcourse.SetSelection(aas.GetPosition(str));// here aas
is ArrayAdapter<String> aas = new
ArrayAdapter<string>(this,Android.Resource.Layout.SimpleSpinnerDropDownItem);
 -----------------------------------------
i fill spinner  using arrayadapter like this       
   Spcourse = FindViewById<Spinner>(Resource.Id.Spcourse);
            aas = new
ArrayAdapter<string>(this,Android.Resource.Layout.SimpleSpinnerDropDownItem);
            Spcourse.Adapter = aas;
            aas.Add(String.Empty);
            aas.Add("MCA");
            aas.Add("MBA");
            aas.Add("M.Sc");
and in saving code i saved like this 
          string spcourse = Spcourse.SelectedItem.ToString();
        sqlc.Parameters.Add(new SqliteParameter("@SCOURSE", spcourse));
-------------------------------------
its working  fine  for saving and retreiving because it contains only
value(coursename)...
but now coming into my current example i filled spinner with dictionary
contains key and value ....here saving the value corresponding to course is
saving...now when i enter student no and click on retreive button the
spinner should set with the course based on database value....i tried some
retreive code but its not working..
 void retreivedict_Click(object sender, EventArgs e) {
           

            string DatabaseName = "sdata.db3";
            string documents =
System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
            string db = Path.Combine(documents, DatabaseName);
            var conn = new SqliteConnection("Data Source=" + db);
            var strSql = "select SNO,SCOURSE,SADD from Stdetails where
SNO=@SNO";
            var cmd = new SqliteCommand(strSql, conn);
            cmd.CommandType = CommandType.Text;
            cmd.Parameters.Add(new SqliteParameter("@SNO",studentno.Text));
            try
            {
                conn.Open();
                SqliteDataReader sdr = cmd.ExecuteReader();
                while (sdr.Read())
                {
                    //string str = Convert.ToString(sdr["SCOURSE"]);
                    int spinintval = Convert.ToInt32(sdr["SCOURSE"]);
                    if (retcourse.ContainsKey(spinintval))          //here i
wrote like this for retreiving
       { studentcourse.SetSelection(adapter1.GetPosition(spinintval));
}//here is my retreive code which is not working                
                     
                    studentaddr.Text = Convert.ToString(sdr["SADD"]);
                   // Toast.MakeText(this, str, ToastLength.Long).Show();       
      
                }
            }
        here is my saving code  for spinner with dictionary collection:

 public class SaveSpinnerValueDictionary : Activity
    {
        Spinner studentcourse;
        EditText studentno, studentaddr;
        Button savedict, retreivedict;
        Dictionary<string, int> course;
        string spinval;
        ArrayAdapter<string> adapter;
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.SaveSpinnerValueDictionary);
            // Create your application here
            studentcourse =
FindViewById<Spinner>(Resource.Id.studentcourse);
            studentno = FindViewById<EditText>(Resource.Id.studentno);
            studentaddr = FindViewById<EditText>(Resource.Id.studentaddr);
            savedict = FindViewById<Button>(Resource.Id.savedictionary);
            retreivedict =
FindViewById<Button>(Resource.Id.retreivedictionary);
             savedict.Click+=new EventHandler(savedict_Click);
            retreivedict.Click+=new EventHandler(retreivedict_Click);
            course = new Dictionary<string, int>();
            course.Add("MCA", 101);
            course.Add("MBA", 202);
            course.Add("MSc", 303);
            course.Add("Mtech", 404);
            adapter = new ArrayAdapter<string>(this,
Android.Resource.Layout.SimpleSpinnerDropDownItem);
            foreach(string k in course.Keys) 
                adapter.Add(k);
            studentcourse.Adapter = adapter;     
        }

        void savedict_Click(object sender, EventArgs e) { 
            string spcourse = studentcourse.SelectedItem.ToString();
            int outValue = 0;
            if (course.TryGetValue(spcourse, out outValue)) {
                spinval = outValue.ToString();
            }
            string DatabaseName = "sdata.db3";
            string documents =
System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
            string db = Path.Combine(documents, DatabaseName);
            bool exists = File.Exists(db);
            if (!exists)
            {
                SqliteConnection.CreateFile(db);
            }
            var conn = new SqliteConnection("Data Source=" + db);
            SqliteCommand sqlitecmd = new SqliteCommand();
            sqlitecmd.Connection = conn;
            string cmd = "CREATE TABLE IF NOT EXISTS Stdetails(SNO
INT,SCOURSE VARCHAR(50),SADD VARCHAR(50))";
            sqlitecmd.CommandType = CommandType.Text;
            sqlitecmd.CommandText = cmd;
            conn.Open();
            sqlitecmd.ExecuteNonQuery();
            conn.Close();

            SqliteCommand sqlc = new SqliteCommand();
            sqlc.Connection = conn;
            conn.Open();
            string strSql = "INSERT INTO Stdetails (SNO, SCOURSE, SADD)
VALUES (@SNO, @SCOURSE, @SADD)";
            sqlc.CommandText = strSql;
            sqlc.CommandType = CommandType.Text;
            sqlc.Parameters.Add(new SqliteParameter("@SNO",studentno.Text));
            sqlc.Parameters.Add(new SqliteParameter("@SCOURSE", spinval));
            sqlc.Parameters.Add(new
SqliteParameter("@SADD",studentaddr.Text));
            sqlc.ExecuteNonQuery();
            if (conn.State != ConnectionState.Closed)
            {
                conn.Close();
            }
            conn.Dispose();
            Toast.MakeText(this, "data inserted successfully...!",
ToastLength.Long).Show();           
           studentno.Text = "";
           studentaddr.Text = "";      
               
        }
now i saved data like this in database:
 sno   scourse   saddress
1        101         UK
2        303        INDIA
3        404         USA
when i enter 2 in sno edittext and click on retreive button the spinner
should populate with "MSc"...
plz tell indetail...actually my task is half completing all time ..plz help
me to complete this task...



--
View this message in context: 
http://mono-for-android.1047100.n5.nabble.com/Enhancement-code-for-Spinner-tp5712950p5712996.html
Sent from the Mono for Android mailing list archive at Nabble.com.
_______________________________________________
Monodroid mailing list
Monodroid@lists.ximian.com

UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid

Reply via email to