Сохранение в DATABASE MVC шаблон
Я довольно новичок в программировании, поэтому, пожалуйста, потерпите меня. Я написал следующий код в разных классах по всему проекту, и мне интересно, почему мои данные не сохраняются в моей базе данных. Я действительно надеюсь, что кто-нибудь сможет мне помочь, так как я уже несколько дней борюсь с этой проблемой, собирая самые темные уголки сети.
Прежде всего, я должен сказать вам, что мое приложение также использует WCF - поэтому методы должны вызываться через WCFService к Клиенту. Любая помощь будет принята с благодарностью!
PS: если это поможет, вот скриншот моего обзора решения: http://imgur.com/JV9Xl3K
Код клиента:
using Client.WCFServiceRef; //My wcf Service reference
namespace Client
{
public partial class MainWindow : Window
{
private WCFServiceClient Client;
public MainWindow()
{
InitializeComponent();
Client = new WCFServiceClient();
}
public string getMovieName()
{
string movieName = txtName.Text;
return movieName;
}
public string getMovieLength()
{
string movieLength = txtLength.Text;
return movieLength;
}
public string getMovieDesc()
{
string movieDesc = txtDescription.Text;
return movieDesc;
}
private void btnMovies_Click(object sender, RoutedEventArgs e)
{
Client.addMovie(getMovieName(), getMovieLength(), getMovieDesc());
}
}
}
Мой код MovieController:
using Server.DB;
namespace Server.Control
{
class MovieCtr
{
public void addMovie(string movieName, string movieLength, string movieDesc)
{
DBMovie conObj = new DBMovie();
conObj.addMovie(movieName, movieLength, movieDesc);
}
}
}
Мой класс DBMovie
namespace Server.DB
{
public class DBMovie
{
DBConnection dbCon = new DBConnection();
public void addMovie(string movieName, string movieLength, string movieDesc)
{
dbCon.openConnection();
SqlCommand com = new SqlCommand();
string query = "INSERT into movies (Name, Runtime, Description) VALUES ('" + movieName + "','" + movieLength + "','" + movieDesc + "');";
com.CommandText = query;
}
}
}
Наконец мой класс dbconnection
namespace Server.DB
{
public class DBConnection
{
SqlConnection sc = new SqlConnection();
public void openConnection()
{
try
{
sc.ConnectionString = ("Data Source=balder.ucn.dk;Initial Catalog=dmaa0213_6;User ID=dmaa0213_6;password=XXXXXX");
sc.Open();
} //endTry
catch (SqlException ex)
{
Console.WriteLine("Could not open connection to database");
Console.WriteLine(ex);
}
}
public void closeConnection()
{
sc.Close();
}
}
}
1 ответ
Вам необходимо вызвать ExecuteNonQuery для объекта SqlCommand.
string query = "INSERT into movies (Name, Runtime, Description) VALUES ('" + movieName + "','" + movieLength + "','" + movieDesc + "');";
com.CommandText = query;
com.ExecuteNonQuery();
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery.aspx
Еще одна вещь, вам нужно связать ваше соединение с объектом команды. В примере на веб-странице выше объект SqlConnection передается в конструктор SqlCommand. Вам нужно будет переписать код, чтобы это работало правильно.