Solved

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

Posted on 2009-05-20
4
1,463 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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Library to convert HTML to PDF. 8 55
fomat Json objects 6 28
ASP.NET Web API or ASP.NET Core MVC? 3 51
Connecting database in Xamarin? 6 48
Entity Framework is a powerful tool to help you interact with the DataBase but still doesn't help much when we have a Stored Procedure that returns more than one resultset. The solution takes some of out-of-the-box thinking; read on!
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…
This tutorial demonstrates a quick way of adding group price to multiple Magento products.
Delivering innovative fully-managed cloud services for mission-critical applications requires expertise in multiple areas plus vision and commitment. Meet a few of the people behind the quality services of Concerto.

930 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

15 Experts available now in Live!

Get 1:1 Help Now