Не удается неявно преобразовать тип string в system windows forms datagridviewtextboxcolumn

POCO, ACE, Loki и другие продвинутые C++ библиотеки

NullReferenced 13.05.2025

В C++ разработки существует такое обилие библиотек, что порой кажется, будто ты заблудился в дремучем лесу. И среди этого многообразия POCO (Portable Components) – как маяк для тех, кто ищет. . .

Паттерны проектирования GoF на C#

UnmanagedCoder 13.05.2025

Вы наверняка сталкивались с ситуациями, когда код разрастается до неприличных размеров, а его поддержка становится настоящим испытанием. Именно в такие моменты на помощь приходят паттерны Gang of. . .

Создаем CLI приложение на Python с Prompt Toolkit

py-thonny 13.05.2025

Современные командные интерфейсы давно перестали быть черно-белыми текстовыми программами, которые многие помнят по старым операционным системам. CLI сегодня – это мощные, интуитивные и даже. . .

Конвейеры ETL с Apache Airflow и Python

AI_Generated 13.05.2025

ETL-конвейеры – это набор процессов, отвечающих за извлечение данных из различных источников (Extract), их преобразование в нужный формат (Transform) и загрузку в целевое хранилище (Load). . . .

Выполнение асинхронных задач в Python с asyncio

py-thonny 12.05.2025

Современный мир программирования похож на оживлённый мегаполис – тысячи процессов одновременно требуют внимания, ресурсов и времени. В этих джунглях операций возникают ситуации, когда программа. . .

Работа с gRPC сервисами на C#

UnmanagedCoder 12.05.2025

gRPC (Google Remote Procedure Call) — открытый высокопроизводительный RPC-фреймворк, изначально разработанный компанией Google. Он отличается от традиционых REST-сервисов как минимум тем, что. . .

CQRS (Command Query Responsibility Segregation) на Java

Javaican 12.05.2025

CQRS — Command Query Responsibility Segregation, или разделение ответственности команд и запросов. Суть этого архитектурного паттерна проста: операции чтения данных (запросы) отделяются от операций. . .

Шаблоны и приёмы реализации DDD на C#

stackOverflow 12.05.2025

Когда я впервые погрузился в мир Domain-Driven Design, мне показалось, что это очередная модная методология, которая скоро канет в лету. Однако годы практики убедили меня в обратном. DDD — не просто. . .

Исследование рантаймов контейнеров Docker, containerd и rkt

Mr. Docker 11.05.2025

Когда мы говорим о контейнерных рантаймах, мы обсуждаем программные компоненты, отвечающие за исполнение контейнеризованных приложений. Это тот слой, который берет образ контейнера и превращает его в. . .

Micronaut и GraalVM — будущее микросервисов на Java?

Javaican 11.05.2025

Облачные вычисления безжалостно обнажили ахиллесову пяту Java — прожорливость к ресурсам и медлительный старт приложений. Традиционные фреймворки, годами радовавшие корпоративных разработчиков своей. . .

  • VBForums
  • Visual Basic
  • Visual Basic .NET
  • VS 2013 Error help — Value of type ‘String’ cannot be converted to ‘System.Windows.Forms.Data

  1. Apr 10th, 2015, 10:01 AM


    #1

    Thread Starter


    Frenzied Member


    Error help — Value of type ‘String’ cannot be converted to ‘System.Windows.Forms.Data

    I keep getting this error message:

    Code:

    Error	2	Value of type 'String' cannot be converted to 'System.Windows.Forms.DataGridViewTextBoxColumn'.	C:\Users\abc\Documents\Visual Studio 2013\Projects\Test Tool\frmGetMultiple.Designer.vb	134	19	Test Tool

    When I go to the specific line of code if refers to its this:

    Code:

    Me.Name = "frmGetMultiple"

    Which is part of this:

    Code:

            'frmGetMultiple
            '
            Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
            Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
            Me.ClientSize = New System.Drawing.Size(673, 387)
            Me.Controls.Add(Me.btnGet)
            Me.Controls.Add(Me.dgv)
            Me.Controls.Add(Me.MenuStrip1)
            Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
            Me.MainMenuStrip = Me.MenuStrip1
            Me.Name = "frmGetMultiple"
            Me.Text = "Get Multiple Values"
            CType(Me.dgvOIDs, System.ComponentModel.ISupportInitialize).EndInit()
            Me.MenuStrip1.ResumeLayout(False)
            Me.MenuStrip1.PerformLayout()
            Me.ResumeLayout(False)
            Me.PerformLayout()

    It doesn’t make sense to me as to why I’m getting this error. If i delete the «Me.Name…» line the issue goes away BUT the IDE adds it back in at some point…

    Very odd…

    10 different ways to skin a cat and amazingly enough each and every one has the same result, the cat gets skinned! The same can be applied to code, so be nice and accept each others «preferences».


  2. Apr 10th, 2015, 11:22 AM


    #2

    Re: Error help — Value of type ‘String’ cannot be converted to ‘System.Windows.Forms.

    What object is frmGetMultiple? In the designer navigate to where it declares a new instance of the object and see what object it is. My suspicion is that you believe that it should be a Form, but the designer is changing it to a DataGridViewTextBoxColumn for whatever reason.

    Otherwise that line is not the one that is

    actually causing the error.


  3. Apr 10th, 2015, 11:54 AM


    #3

    Re: Error help — Value of type ‘String’ cannot be converted to ‘System.Windows.Forms.

    um… do you have a DataGridViewTextBoxColumn called «Name» by chance? If so that might be the issue, and you may want to give it a new name instead.

    -tg


  • VBForums
  • Visual Basic
  • Visual Basic .NET
  • VS 2013 Error help — Value of type ‘String’ cannot be converted to ‘System.Windows.Forms.Data

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
  • BB code is On
  • Smilies are On
  • [IMG] code is On
  • [VIDEO] code is On
  • HTML code is Off

Forum Rules


Click Here to Expand Forum to Full Width

Был простенький запрос на извлечение списка по убыванию из базы с пагинацией и поиском на странице:

spoiler

public async Task<IActionResult> Online(string name, int page = 1)
        {
            int pageSize = 30;   // количество элементов на странице                            

            IQueryable<Chr> source = from c in db.Chr
                                           orderby c.RCount, c.Level
                                           select new Chr()
                                           {
                                               Name = c.Name,
                                           };

            if (!String.IsNullOrEmpty(name))
            {
                source = source.Where(p => p.Name.Contains(name));
            }

            var count = await source.CountAsync();
            var items = await source.Skip((page - 1) * pageSize).Take(pageSize).ToListAsync();

            // формируем модель представления
            IndexViewModel model = new IndexViewModel
            {
                PageViewModel = new PageViewModel(count, page, pageSize),
                FilterViewModel = new FilterViewModel(db.Chr.ToList(), name),
                Chr = items
            };

            return View(model);
        }

IndexViewModel:

spoiler

public class IndexViewModel
    {
        public IEnumerable<Chr> Chr { get; set; }           
        public PageViewModel PageViewModel { get; set; }
        public FilterViewModel FilterViewModel { get; set; }       
    }

Недавно понадобилось взять ещё одну таблицу из базы. Что сделал я:

spoiler

public async Task<IActionResult> Online(string name, int page = 1)
        {
            int pageSize = 30;   // количество элементов на странице                            

            IQueryable<Chr> source = from c in db.Chr
                                           join g in db.GMember
                                           on c.Name equals g.Name into gg
                                           from ggg in gg.DefaultIfEmpty()

                                           orderby c.RCount, c.Level
                                           select new IndexViewModel()
                                       {
                                           Chr = c.Name,
                                           GMember = ggg.G_Name
                                       };


            if (!String.IsNullOrEmpty(name))
            {
                source = source.Where(p => p.Name.Contains(name));
            }

            var count = await source.CountAsync();
            var items = await source.Skip((page - 1) * pageSize).Take(pageSize).ToListAsync();

            // формируем модель представления
            IndexViewModel model = new IndexViewModel
            {
                PageViewModel = new PageViewModel(count, page, pageSize),
                FilterViewModel = new FilterViewModel(db.Chr.ToList(), name),
                Chr = items
            };

            return View(model);
        }

В итоге я получаю 2 ошибки:

Не удается неявно преобразовать тип "string" в "System.Collections.Generic.IEnumerable<Web.Models.DataBase.Chr>"

Не удается неявно преобразовать тип "string" в "System.Collections.Generic.IEnumerable<Web.Models.GMember>"

В строках

Chr = c.Name,
GMember = ggg.G_Name

Подскажите пожалуйста, что я сделал не правильно.


  • Вопрос задан

  • 848 просмотров

Пригласить эксперта

Во первых в последнем примере кода должно быть:

IQueryable<ItemViewModel> = .... new ItemViewModel()

вместо
IQueryable<Chr> = .... new ItemViewModel()

Во вторых идёт присваивание в IEnumerable переменной с типом string, вместо этого:

select new SomeType()
                                       {
                                           Chr = new Chr{ Name = c.Name},
                                           GMember = new GMember { Name = ggg.G_Name}
                                       };

Войдите, чтобы написать ответ


  • Показать ещё
    Загружается…

Минуточку внимания

What does this mean?
Im using windows form, and heres my code so far, Please help!

double number1;
            double number2;
            double result;

            number1 = double.Parse(textBox1.Text);
            number2 = double.Parse(textBox2.Text);

            result = Math.Sqrt((number1 * number1) + (number2 * number2));

            label1 = result.ToString();

Answers (4)

Распределенное обучение с TensorFlow и Python

AI_Generated 05.05.2025

В машинном обучении размер имеет значение. С ростом сложности моделей и объема данных одиночный процессор или даже мощная видеокарта уже не справляются с задачей обучения за разумное время. Когда. . .

CRUD API на C# и GraphQL

stackOverflow 05.05.2025

В бэкенд-разработке постоянно возникают новые технологии, призванные решить актуальные проблемы и упростить жизнь программистам. Одной из таких технологий стал GraphQL — язык запросов для API,. . .

Распознавание голоса и речи на C#

UnmanagedCoder 05.05.2025

Интеграция голосового управления в приложения на C# стала намного доступнее благодаря развитию специализированных библиотек и API. При этом многие разработчики до сих пор считают голосовое управление. . .

Реализация своих итераторов в C++

NullReferenced 05.05.2025

Итераторы в C++ — это абстракция, которая связывает весь экосистему Стандартной Библиотеки Шаблонов (STL) в единое целое, позволяя алгоритмам работать с разнородными структурами данных без знания их. . .

Разработка собственного фреймворка для тестирования в C#

UnmanagedCoder 04.05.2025

C# довольно богат готовыми решениями – NUnit, xUnit, MSTest уже давно стали своеобразными динозаврами индустрии. Однако, как и любой динозавр, они не всегда могут протиснуться в узкие коридоры. . .

Распределенная трассировка в Java с помощью OpenTelemetry

Javaican 04.05.2025

Микросервисная архитектура стала краеугольным камнем современной разработки, но вместе с ней пришла и головная боль, знакомая многим — отслеживание прохождения запросов через лабиринт взаимосвязанных. . .

Шаблоны обнаружения сервисов в Kubernetes

Mr. Docker 04.05.2025

Современные Kubernetes-инфраструктуры сталкиваются с серьёзными вызовами. Развертывание в нескольких регионах и облаках одновременно, необходимость обеспечения низкой задержки для глобально. . .

Создаем SPA на C# и Blazor

stackOverflow 04.05.2025

Мир веб-разработки за последние десять лет претерпел коллосальные изменения. Переход от традиционных многостраничных сайтов к одностраничным приложениям (Single Page Applications, SPA) — это. . .

Реализация шаблонов проектирования GoF на C++

NullReferenced 04.05.2025

«Банда четырёх» (Gang of Four или GoF) — Эрих Гамма, Ричард Хелм, Ральф Джонсон и Джон Влиссидес — в 1994 году сформировали канон шаблонов, который выдержал проверку временем. И хотя C++ претерпел. . .

C# и сети: Сокеты, gRPC и SignalR

UnmanagedCoder 04.05.2025

Сетевые технологии не стоят на месте, а вместе с ними эволюционируют и инструменты разработки. В . NET появилось множество решений — от низкоуровневых сокетов, позволяющих управлять каждым байтом. . .

When developing a .NET application (i.e. in C#), under certain circumstances, you might get the error message: Cannot implicitly convert type ‘string’ to ‘System.Windows.Forms.DataGridViewTextBoxColumn

Example of Exception in Visual Studio when Using the Reserved Word "Name" as a DataGridView Column Name - SQLNetHub Article

Example of Exception in Visual Studio when Using the Reserved Word “Name” as a DataGridView Column Name.

Why you got the implicit conversion error

If you get the above error, then you have most probably set as a column name for one of your datagridview column the reserved word ‘name‘.

If you do this, then the compiler finds a conflict between the assignment of the form’s name and the DataGridview’s column name.


Get Started with .NET Programming Fast and Easy!

Check our online course titled “.NET Programming for Beginners – Windows Forms with C#.
(special limited-time discount included in link).

Learn how to implement Windows Forms projects in .NET using Visual Studio and C#, how to implement multithreading, how to create deployment packages and installers for your .NET Windows Forms apps using ClickOnce in Visual Studio, and more! 

Many live demonstrations and downloadable resources included!

Learn More


How to resolve the issue

To resolve this issue just change the name of the DataGridView’s column to something else instead of “name”.

There is a reason there are reserved words not only in .NET byut in many other development platforms as well (i.e. SQL Server, etc.).

To this end, please make sure that you are not using any reserved words in your development work because if you use them, there is always the risk of a conflict with system routines like the above example.

Check this MSDN article for information about the words reserved by the linker.

Recommended Online Courses:

  • AI Essentials: A Beginner’s Guide to Artificial Intelligence
  • SQL Server 2022: What’s New – New and Enhanced Features
  • Working with Python on Windows and SQL Server Databases
  • Introduction to Azure Database for MySQL
  • Boost SQL Server Database Performance with In-Memory OLTP
  • Introduction to Azure SQL Database for Beginners
  • Essential SQL Server Administration Tips
  • SQL Server Fundamentals – SQL Database for Beginners
  • Essential SQL Server Development Tips for SQL Developers
  • Introduction to Computer Programming for Beginners
  • .NET Programming for Beginners – Windows Forms with C#
  • SQL Server 2019: What’s New – New and Enhanced Features
  • Entity Framework: Getting Started – Complete Beginners Guide
  • Data Management for Beginners – Main Principles
  • A Guide on How to Start and Monetize a Successful Blog

Artemakis Artemiou is a seasoned Senior Database and AI/Automation Architect with over 20 years of expertise in the IT industry. As a Certified Database, Cloud, and AI professional, he has been recognized as a thought leader, earning the prestigious Microsoft Data Platform MVP title for nine consecutive years (2009-2018). Driven by a passion for simplifying complex topics, Artemakis shares his expertise through articles, online courses, and speaking engagements. He empowers professionals around the globe to excel in Databases, Cloud, AI, Automation, and Software Development. Committed to innovation and education, Artemakis strives to make technology accessible and impactful for everyone.

Views: 11,176

We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit «Cookie Settings» to provide a controlled consent. Read More

Здраствуйте.
Начну с того что сразу скажу что исправление при помощи
throw new NotImplementedException();
которое предлагает VS Code не подойдёт тк при использовании combobox поментально кидает к ошибке…

Form1.cs:

using static SDM_Lab5.PasMove;

namespace SDM_Lab5
{
    public partial class Form1 : Form
    {
        Aeroplane aero;
        Train tr;
        Avto av;
        public Form1()
        {
            InitializeComponent();

        }
        PasMove pm;
        
        Gorod[] towns; 
        string pathString = @"C:\Users\Miste\Desktop\Задания_СИ(шарп)\Лабораторные\ЛР_5\SDM_Lab5\SDM_Lab5\img";

        private void Form1_Load(object sender, EventArgs e)
        {
            aero = new Aeroplane(); // создаем экземпляры классов с начальными значениями
            tr = new Train();
            av = new Avto();
            towns = new Gorod[5]; // Задаем значения полей 
            towns[0] = new Gorod("Москва", 709, "Moscow.jpg");
            towns[1] = new Gorod("Рим", 3016, "Rome.jpg");
            towns[2] = new Gorod("Нью-Йорк", 6883, "New-york.jpg");
            towns[3] = new Gorod("Токио", 7598, "Tokyo.jpg");
            towns[4] = new Gorod("Лондон", 2818, "London.jpg");

            
            //  добавим поле Name из каждого объекта в выпадающий список          
            for (int i = 0; i < 5; i++)
            { comboBox1.Items.Add(towns[i].Name); }

        }
        int k;
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            k = comboBox1.SelectedIndex;
            // выводим расстояние до нужного города
            label1.Text = towns[k].ToString();
            // выводим соответствующую картинку          
            pictureBox1.Image = Image.FromFile(pathString + "\\" + towns[k].Url);

        }
        private void button1_Click(object sender, EventArgs e)
        {
            if (comboBox2.Text == "")
            { MessageBox.Show("Не выбран транспорт!"); return; }
            Form2 frm2 = new Form2(pm);
            frm2.ShowDialog();
        }

        private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (comboBox2.SelectedIndex)
            {
                case 0: pm = aero; break; // Ошибки здесь, у aero; tr; av
                case 1: pm = tr; break;
                case 2: pm = av; break;
            }

        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (comboBox1.Text == "" || comboBox2.Text == "")
            { MessageBox.Show("Не выбраны данные для расчета"); return; }
            else
            {
                double g = pm.Time(towns[k].Rast);
                double c = (pm.Equals(av)) ? pm.CostTrip(towns[k].Rast) : pm.CostTrip(g);
                label1.Text = string.Format("Стоимость поездки на 1 человека {0:f2} (без учета прочих сборов)", c);
            }

        }
    }
}

PasMove.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SDM_Lab5
{
    public class PasMove
    {
       
        public virtual int CountPas { get; set; }
        public virtual double Speed { get; set; }
        public string Name { get; set; }
        public double CostFuel { get; set; }
        public double Rashod { get; set; }
        public double Time(double s)
        { return s / Speed; }
        public virtual double CostTrip(double t)
        { return t * Rashod * CostFuel / CountPas; }

        public class Aeroplane
        {
            int countPas;
            double speed;

            public int CountPas
            {
                get { return countPas; }
                set { if (value <= 300) countPas = value; }
            }
            public double Speed
            {
                get => speed;
                set { if (value > 600 && value <= 900) speed = value; }
            }
            string Name;
            double CostFuel;
            double Rashod;
            public Aeroplane()
            {
                Name = "Самолет";
                CountPas = 280;
                Speed = 800;
                CostFuel = 37.2;
                Rashod = 2600;
            }

        }
        public class Train
        {
            int countPas;
            double speed;

            public int CountPas
            {
                get { return countPas; }
                set { if (value <= 300) countPas = value; }
            }
            public double Speed
            {
                get => speed;
                set { if (value > 600 && value <= 900) speed = value; }
            }
            string Name;
            double CostFuel;
            double Rashod;
            public Train()
            {
                Name = "Поезд";
                CountPas = 500;
                Speed = 80;
                CostFuel = 3.2;
                Rashod = 1600;

            }

        }
        public class Avto
        {
            int countPas;
            double speed;

            public int CountPas
            {
                get { return countPas; }
                set { if (value <= 300) countPas = value; }
            }
            public double Speed
            {
                get => speed;
                set { if (value > 600 && value <= 900) speed = value; }
            }
            double CostFuel;
            double Rashod;

            public virtual double CostTrip(double t) { return t / 100 * Rashod * CostFuel / CountPas;}
            string Name;
            public  Avto()
            {
                
                Name = "Автомобиль";
                CountPas = 3;
                Speed = 110;
                CostFuel = 3.2;
                Rashod = 1600;

            }
        }
    }
}

628cc57c46943979581608.png

Извините что всё так конкретно и всё сразу не могу найти решение уже 2 дня

Я новичок в Visual Studio 2010 в языках C#. Я уже создал форму. Однако, когда я запускаю приложение, возникает ошибка, указывающая, что "Cannot implicity convert type 'string' to 'System.Windows.Forms.ColumnHeader'". Может кто-нибудь сказать мне, что случилось и как я могу решить эту проблему? Спасибо.

enter image description here

3 ответов


кажется, что вы создали ColumnHeader на имя Name на форме, которая в свою очередь скрывает свойство формы this.Name, который является строкой… это единственный сценарий, который я могу себе представить, приводящий к ошибке из предоставленного скриншота.
Если мое предположение верно, вы можете решить это, изменив эту строку на this.Name.Name = "ter";


кажется, что вы создали ColumnHeader с именем «Name».
Пожалуйста, проверьте, есть ли у вас какие-либо элементы управления с именем «Name».

Ex: — у меня был DataGridView с именем столбца «SrNo», «Name», «Age».
Я получал ту же ошибку. Почему bcoz «имени».

решение: переименуйте заголовок столбца DataGridView » Name «в» Person «или любую другую вещь, кроме»Name».
Но если вы хотите отобразить » имя » как текст заголовка DataGridView , вы можете сохранить HeaderText как «Имя.»т. е.

Название: Человек

HeaderText: Name

DataPropertyName: Person

здесь DataPropertyName является необязательным. Он используется при привязке через коллекцию в качестве источника данных.

4

автор: Sudhanshu Shekhar


вы уверены, что не хотите .Text вместо .Name?


Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Free dwg viewer for windows 7
  • Данный параметр не совместим с пакетом обновления 1 для windows 2000 или более ранними версиями
  • Обновление корневых сертификатов windows server 2019
  • Восстановление службы центр обновления windows
  • Как удалить системные приложения windows 10 powershell