У меня есть C # Windows Forms для ввода значений в базу данных SQL Server, которые просто не работают, хотя ошибок нет? - PullRequest
0 голосов
/ 12 января 2019

Я создал простую форму Windows для ввода данных в таблицу базы данных SQL Server. На первый взгляд, все нормально, ошибок нет, но после отправки данных в таблицу эти данные не отображаются. Я посмотрел на то, куда указывает соединение, и это выглядит нормально. так что я застрял на данный момент. Любая помощь будет великолепна.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace WindowsFormsApp7
{
    public partial class Onbutton1_Click : Form
    {
        public Onbutton1_Click()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                String str = 
"den1.mssql7.gear.host;database=generic;UID=generic;password=Generic";
                String cmdText1 = "INSERT INTO TEST1 (Name) VALUES ('%'+ @Name + '%')";
                String cmdText2 = "INSERT INTO TEST1 (Age) VALUES ('%'+ @Age + '%')";

                SqlConnection con = new SqlConnection(str);

                SqlCommand cmd1 = new SqlCommand(cmdText1, con);
                SqlCommand cmd2 = new SqlCommand(cmdText2, con);  
                cmd1.Parameters.Add("@Name", SqlDbType.VarChar, 255).Value =  textBox1.Text;
                cmd2.Parameters.Add("@Age", SqlDbType.VarChar, 255).Value = textBox2.Text;

                con.Open();

                cmd1.ExecuteNonQuery();
                cmd2.ExecuteNonQuery();

                DataSet ds = new DataSet();
                con.Close();
        }
        catch (Exception es)
        {
            MessageBox.Show("Complete");
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 12 января 2019

Спасибо @Crowcoder за подсказку, исключение указывает на ошибку ключевого слова. Просто хотел немного больше, чем я дал.

String str ="server=den1.mssql7.gear.host;
database=generic;
UID=generic;
password=Generic";
0 голосов
/ 12 января 2019

Ваша проблема лежит здесь

String cmdText1 = "INSERT INTO TEST1 (Name) VALUES ('%'+ @Name + '%')";
String cmdText2 = "INSERT INTO TEST1 (Age) VALUES ('%'+ @Age + '%')";

Это должно быть

 String cmdText1 = "INSERT INTO TEST1 (Name) VALUES (@Name)";
 String cmdText2 = "INSERT INTO TEST1 (Age) VALUES (@Age)";

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

 String cmdText = "INSERT INTO TEST1 (Name,Age) VALUES (@Name,@Age)";
 cmd1.Parameters.Add("@Name", SqlDbType.VarChar, 255).Value = textBox1.Text;
 cmd1.Parameters.Add("@Age", SqlDbType.VarChar, 255).Value = textBox2.Text;
...