Solved

Unable to cast object of type 'System.Data.DataRowView' to type 'System.IConvertible'.

Posted on 2009-05-20
4
1,477 Views
Last Modified: 2012-05-07
I am developing a c# standalone appln ,in which depending on the combobox selecte value i have to display data in the datagrid view.
i am using mysql database
i'm getting a runtime error at
 dAdapter2.Fill(ds, "cl2");
in  private void clNamecomboBox_SelectedIndexChanged(object sender, EventArgs e)
pls help me to find a sol'n
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data;
using MySql.Data.MySqlClient;
 
namespace DataBinding
{
    
 
    public partial class Form1 : Form
    {
        MySqlConnection conn;
        MySqlDataAdapter dAdapter1;
        MySqlDataAdapter dAdapter2;
        DataSet ds;
        BindingSource bSource;
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
           
            string connString = @"server=localhost;database=abc;user id=root;password=kodanda;";
            string sql = @"select client_mst.client_id as id,Concat(client_no,'   ' ,client_name) as client from client_mst";
            conn = null;
 
 
            try
            {
                conn = new MySqlConnection(connString);
                conn.Open();
 
                 dAdapter1 = new MySqlDataAdapter(sql, conn);
                MySqlCommandBuilder cBuilder = new MySqlCommandBuilder(dAdapter1);
                ds = new DataSet();
                dAdapter1.Fill(ds,"Cl");
                bSource = new BindingSource();
                bSource.DataSource = ds.Tables["Cl"];
                clNamecomboBox.DataSource = bSource;
                MessageBox.Show(conn.Database);
                
                clNamecomboBox.ValueMember = "id";
                clNamecomboBox.DisplayMember = "client";
                
 
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error"+ex);
            }
        }
 
        private void clNamecomboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            string sql1 = @"select notes_date,notes_message from client_notes where client_id=@cid";
            dAdapter2 = new MySqlDataAdapter(sql1, conn);
 
         
            dAdapter2.SelectCommand.Parameters.Add("@cid", MySqlDbType.Int32); 
            dAdapter2.SelectCommand.Parameters["@cid"].Value = clNamecomboBox.SelectedValue;
         
            dAdapter2.Fill(ds, "cl2");
            BindingSource bSource2 = new BindingSource();
            bSource2.DataSource = ds.Tables["cl2"];
            dataGridView1.DataSource = bSource2;
        }
        
    }
}

Open in new window

0
Comment
Question by:APPIREDDY
  • 3
4 Comments
 
LVL 9

Expert Comment

by:tculler
ID: 24432265
I'm guessing the error is coming from this line:
dAdapter2.SelectCommand.Parameters["@cid"].Value = clNamecomboBox.SelectedValue;

The error is telling you that the object passed to the Value property did not implement the interface System.IConvertible. In other words, it couldn't be "converted" to a satisfactory String representation. The SelectedValue property returned a DataViewRow. Maybe use clNamecomboBox.SelectedValue.Value?
0
 

Author Comment

by:APPIREDDY
ID: 24432354
if i change that line to
dAdapter2.SelectCommand.Parameters["@cid"].Value = Convert.ToInt32clNamecomboBox.SelectedValue);
i'm still getting the error.
cid  is an integer in database

0
 

Author Comment

by:APPIREDDY
ID: 24432382
clNamecomboBox.SelectedValue.Value doesn't exist
0
 

Accepted Solution

by:
APPIREDDY earned 0 total points
ID: 24449555
I have changed the order to
clNamecomboBox.DisplayMember = "client";
                clNamecomboBox.ValueMember = "id";
                clNamecomboBox.DataSource = bSource;
then I got it right
0

Featured Post

Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Article by: Ivo
C# And Nullable Types Since 2.0 C# has Nullable(T) Generic Structure. The idea behind is to allow value type objects to have null values just like reference types have. This concerns scenarios where not all data sources have values (like a databa…
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
In this video I am going to show you how to back up and restore Office 365 mailboxes using CodeTwo Backup for Office 365. Learn more about the tool used in this video here: http://www.codetwo.com/backup-for-office-365/ (http://www.codetwo.com/ba…
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.

816 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now