Aydotcom Ответов: 1

Как преобразовать интергер в строку в C#?


Привет,
В своем приложении я использую windows form c# и подключаюсь к sql server 2008 r2 с visual studio 2013 и успешно регистрируюсь. Всякий раз , когда я пытаюсь получить данные из базы данных с помощью кнопки обновления, программа возвращает "необработанное исключение типа" System.FormatException ' произошло в mscorlib.dll"
Кто-нибудь может мне помочь, пожалуйста?

Что я уже пробовал:

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 System.Data.SqlClient;

namespace BankApp
{
    public partial class InsertUpdateDelete : Form
    {
        SqlConnection con = new SqlConnection("Data Source=Aydotcom-HP\\SQLEXPRESS;Initial Catalog=fham;Integrated Security=True");
        SqlCommand cmd;
        SqlDataAdapter adapt;
        //ID variable used in Updating and Deleting Record  
        int ID = 0;

        public InsertUpdateDelete()
        {
            InitializeComponent();
            DisplayData();
        }

        private void InsertUpdateDelete_Load(object sender, EventArgs e)
        {

        }

        private void btn_Insert_Click(object sender, EventArgs e)
        {
            if (txt_UName.Text != "" && txt_Password.Text != "")
            {
               // cmd = new SqlCommand("insert into login (UserName,Password,ID) values(@username,@password,@ID)", con);
               cmd = new SqlCommand("insert into login (UserName,Password) values(@username,@password)", con);
               con.Open();
                //cmd.Parameters.AddWithValue("@ID", txt_ID.Text);
                cmd.Parameters.AddWithValue("@username", txt_UName.Text);
                cmd.Parameters.AddWithValue("@password", txt_Password.Text);
                cmd.ExecuteNonQuery();
                con.Close();
                MessageBox.Show("Record Inserted Successfully");
                DisplayData();
                ClearData();
            }
            else
            {
                MessageBox.Show("Please Provide Details!");
            }
        }
        //Display Data in DataGridView  
        private void DisplayData()
        {
            con.Open();
            DataTable dt = new DataTable();
            adapt = new SqlDataAdapter("select * from login", con);
            adapt.Fill(dt);
            dataGridView1.DataSource = dt;
            con.Close();
        }
        //Clear Data  
        private void ClearData()
        {
            txt_UName.Text = "";
            txt_Password.Text = "";
            ID = 0;
        }

        private void btn_Update_Click(object sender, EventArgs e)
        {
            if (txt_UName.Text != "" && txt_Password.Text != "")
            {
                cmd = new SqlCommand("update login set UserName=@Username,Password=@password where ID=@id", con);
                con.Open();
                cmd.Parameters.AddWithValue("@id", ID);
                cmd.Parameters.AddWithValue("@Username", txt_UName.Text);
                cmd.Parameters.AddWithValue("@password", txt_Password.Text);
                cmd.ExecuteNonQuery();
                MessageBox.Show("Record Updated Successfully");
                con.Close();
                DisplayData();
                ClearData();
            }
            else
            {
                MessageBox.Show("Please Select Record to Update");
            }
        }

        private void btn_Delete_Click(object sender, EventArgs e)
        {
            if (ID != 0)
            {
                cmd = new SqlCommand("delete login where ID=@id", con);
                con.Open();
                cmd.Parameters.AddWithValue("@id", ID);
                cmd.ExecuteNonQuery();
                con.Close();
                MessageBox.Show("Record Deleted Successfully!");
                DisplayData();
                ClearData();
            }
            else
            {
                MessageBox.Show("Please Select Record to Delete");
            }
        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {            ID = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString());
            // ID = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
            txt_UName.Text = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString();
            txt_Password.Text = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();

        }

    }
}

ZurdoDev

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

Основываясь на очень маленькой информации, которую вы дали, я буду таким
dataGridView1.Ряды[электронный.Параметр rowindex].Ячейки[0].Значение.Метод toString()
не является целым числом. Все, что вам нужно сделать, это отладить код, и вы увидите, что происходит.

CHill60

Какая линия вызывает проблему?
Чтобы преобразовать целое число в строку, используйте x. ToString (), где x-ваше целое число

[no name]

И чего вы от нас ждете? Узнайте, как использовать отладчик для отладки вашего кода. Тогда вы не будете ожидать, что случайные незнакомцы в интернете будут отлаживать ваш код для вас когда они не могут запустить ваш код для начала.

1 Ответов

Рейтинг:
1

Maciej Los

Как Ряндев[^] упомянутый в комментарии к вопросу, вы должны отладить свою программу.

Я бы посоветовал прочитать это: Устранение Неполадок Исключения: Система.Formatexception версия[^] чтобы иметь возможность решить вашу проблему.