2016-12-25 4 views
0

Я разрабатываю систему управления отелями для своей проектной лекции в университете. Я прошу вас помочь мне исправить код, который я вставил ниже. Я не понимаю, почему это не перенос и сохранение входов, которые я вводил в программу в Visual Studio Express. Это код:Сохранение входных данных программы в базу данных

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Data.SqlClient; 

namespace WindowsFormsApplication2 
{ 
    class Database 
    { 
     SqlConnection con; 
     public Database() 
     { 
      con = new SqlConnection("server=.,database=Guest; Integrated Security = True"); 
     } 

     public bool AddGuest(string ID, string Phone, string Adress, string FName, string LName, string Email, string RoomNo) 
     { 
      bool durum = false; 
      SqlCommand cmd = new SqlCommand(@"declare @guest_id nvarchar(50),@guest_phone nvarchar(50),@guest_adress ntext,@guest_fname ntext,@guest_lname ntext,@guest_email ntext,@room_no int = @room_no; 
select @guest_id = Guest.guest_id from Guest where Guest.room_no = '103'; 
select @guest_phone = Guest.guest_phone from Guest where Guest.room_no = '103'; 
select @guest_adress = Guest.guest_adress from Guest where Guest.room_no = '103'; 
select @guest_fname = Guest.guest_fname from Guest where Guest.room_no = '103'; 
select @guest_lname = Guest.guest_lname from Guest where Guest.room_no = '103'; 
select @guest_email = Guest.guest_email from Guest where Guest.room_no = '103'; 

insert into Guest(guest_id,guest_phone,guest_adress,guest_fname,guest_lname,guest_email,room_no)values(@guest_id,@guest_adress,@guest_fname,@guest_lname,@guest_email,@room_no) 

)", con); 
      cmd.Parameters.AddWithValue("@id", ID); 
      cmd.Parameters.AddWithValue("@phone", Phone); 
      cmd.Parameters.AddWithValue("@adress", Adress); 
      cmd.Parameters.AddWithValue("@fname", FName); 
      cmd.Parameters.AddWithValue("@lname", LName); 
      cmd.Parameters.AddWithValue("@email", Email); 
      cmd.Parameters.AddWithValue("@room_no", RoomNo); 
      con.Open(); 
      try 
      { 
       cmd.ExecuteNonQuery(); 
       durum = true; 
      } 
      catch (Exception) 
      { 
      } 
      con.Close(); 
      return durum; 
     } 
     private void ekle_Click(object sender, EventArgs e) 
     { 

     } 
    } 
} 

enter image description here

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

+0

Вы строка соединения должна быть либо сервер =. \ SQLExpress или. \ SQLStandard. Я бы использовал SQL Server Management Studio (SSMS), который поставляется с SQL Server для устранения проблем. Вы можете запросить базу данных, чтобы проверить, были ли данные добавлены. Имя сервера в строке подключения должно совпадать с именем входа в систему SSMS. Вы можете писать в неправильную базу данных, чтобы проверить все базы данных в SSMS-проводнике. – jdweng

+0

есть только одна база данных, и я также использую SQL Server Management Studio 2014. Это скриншот экрана входа в мою базу данных: http://i.hizliresim.com/MoayGg.png И это один из внутренних снимков экрана: http://i.hizliresim.com/DByRbv.png –

+0

Ваша строка подключения должна быть либо server =, \ cembilal, либо server = CEM-BILAL \ cembilal. «cembilal» - это экземпляр базы данных. Имя вашей базы данных также неверно, должно быть hocu (не гость). Обычно я в своем SQL-заявлении ставил «Использовать hocu» в начале запроса для выбора правильной базы данных. Или добавьте имя базы данных в строку подключения. Вы не указываете hocu, которые заставляют меня думать, что вы пишете другой экземпляр SQL Server. Экземпляром SQL Server в вашем случае является cembilal. Я подозреваю, что у вас есть два экземпляра SQL Server, установленных на вашем ПК. – jdweng

ответ

0

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

Несколько вещей, которые я нашел в кратком обзоре:

  1. Не используйте NTEXT изменить эти заявления на VARCHAR (50).
  2. @room_no int = @room_no не удастся. (Вы имели в виду @roomno = «» + RoomNo + «')
  3. Ваши параметры addwithvalue не соответствуют параметрам в вашем SQL (вы знали об этом?)
Смежные вопросы