Solved

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

Posted on 2009-05-20
4
1,443 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
Comment Utility
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
Comment Utility
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
Comment Utility
clNamecomboBox.SelectedValue.Value doesn't exist
0
 

Accepted Solution

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

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Introduction                                                 Was the var keyword really only brought out to shorten your syntax? Or have the VB language guys got their way in C#? What type of variable is it? All will be revealed.   Also called…
Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

762 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

7 Experts available now in Live!

Get 1:1 Help Now