Я новичок в программировании в .net. Для первого проекта я хочу записать данные в базу данных sql-сервера. Это очень простая программа с одной формой, несколько текстовых полей для ввода и одна для вывода. Целью программы является отслеживание моего обучения. У меня также есть текстовое поле для вывода, проблема в том, что в этом текстовом поле ничего не отображается (кроме «test»). Я думаю, это простая проблема, но я не могу понять.Вывод не записан в текстовое поле C#
(Как я уже сказал, я новичок в программировании .net, поэтому, если кто-либо из вас, ребята, мог бы дать советы по передовому программированию, тоже будет оценен).
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 Write_to_database
{
public partial class WriteToDatabase : Form
{
public WriteToDatabase()
{
InitializeComponent();
}
private void bWrite_Click(object sender, EventArgs e)
{
SqlServer sql = new SqlServer();
WriteToOutput("test");
sql.OpenSqlConnection();
sql.WriteToTraining("20151231","10",10.0,5,5);
sql.CloseSqlConnection();
}
public string WriteToOutput(string output)
{
this.tOutput.Text += output + "\r\n";
return this.tOutput.Text.ToString();
}
}
public class SqlServer : WriteToDatabase
{
SqlConnection con = new SqlConnection("Data Source=WINSERVER;Initial Catalog=TRAINING;Integrated Security=SSPI;");
public void OpenSqlConnection()
{
try
{
con.Open();
WriteToOutput("Connection to: " + "'Data Source=WINSERVER;Initial Catalog=TRAINING;Integrated Security=SSPI;'" + " successful.");
}
catch
{
WriteToOutput("Connection to: " + "'Data Source=WINSERVER;Initial Catalog=TRAINING;Integrated Security=SSPI;'" + " failed.");
}
}
public void CloseSqlConnection()
{
try
{
con.Close();
WriteToOutput("Connection to: " + "'Data Source=WINSERVER;Initial Catalog=TRAINING;Integrated Security=SSPI;'" + " successfully closed");
}
catch
{
WriteToOutput("Connection to: " + "'Data Source=WINSERVER;Initial Catalog=TRAINING;Integrated Security=SSPI;'" + " not closed.");
}
}
public void WriteToTraining(string date, string lift, double weight, int reps, int week)
{
try
{
using (SqlCommand command = new SqlCommand("INSERT INTO LIFT_HISTORY VALUES(@date,@lift,@weight,@reps,@week)", con))
{
command.Parameters.Add(new SqlParameter("weight", weight.ToString()));
command.Parameters.Add(new SqlParameter("date", date.ToString()));
command.Parameters.Add(new SqlParameter("week", week.ToString()));
command.Parameters.Add(new SqlParameter("reps", date.ToString()));
command.Parameters.Add(new SqlParameter("lift", date.ToString()));
command.ExecuteNonQuery();
}
WriteToOutput("Data successfully written to database.");
}
catch
{
WriteToOutput("Data not written to database.");
}
}
}
}
Поскольку вы не показать свойства вашего текстового поля, я предполагаю, что ваше текстовое поле является одной строкой, в то время как вы должны включить его многоуровневые возможности (либо из конструктора форм, либо через свойства), чтобы показать дополнительный текст, добавленный символами новой строки. – Jure
Также я считаю, что это плохой класс, чтобы получить свой логический класс базы данных из класса, который наследуется от формы. Вы должны сделать свой класс SqlServer самостоятельным, а не наследовать от формы. – Jure