这是我的访问代码:
namespace DataBaseApp
{
class DB_Access
{
SqlConnection conn = new SqlConnection();
public DB_Access()
{
conn = DB_Connection.GetConnection(); // Bağlantıyı sağlamak için DB_Connection classından metodu aldım değere atadım //
}
public void add_student(string RegNo, string FName, string LName, string Phone) // Burada programdan veritabanina nasil veri eklenir //
{
if (conn.State.ToString() == "Closed") // State durum bildirir.Eğer Database akışı kapalıysa açalım //
{
conn.Open();
}
try
{
SqlCommand newCmd = conn.CreateCommand();
newCmd.Connection = conn;
newCmd.CommandType = CommandType.Text;
newCmd.CommandText = "INSERT INTO Student(RegNo,FName,LName,Phone) values(RegNo,FName,LName,Phone)";
newCmd.ExecuteNonQuery();
}
catch (Exception Ex)
{
Console.WriteLine("Errorr " + Ex);
}
}
}
这是连接代码
namespace DataBaseApp
{
class DB_Connection
{
public static SqlConnection NewCon; // Yeni bir bağlantıo oluşturma //
public static string ConStr = ConfigurationManager.ConnectionStrings["ConString"].ConnectionString; //App.config dosyasıyla bağlantı oluşturma //
public static SqlConnection GetConnection() //.config den gelen string file ile bağlantı kurulur //
{
NewCon = new SqlConnection(ConStr);
return NewCon;
}
}
当我运行它时,这不能运行add_student
方法??我完全更改app.config
文件我认为错误不在app.config
。
实际上这是windows表单应用程序简单的sql集成到c#但是当我推送添加新的学生方法程序崩溃时...
答案 0 :(得分:1)
在Insert-SqlCommand中,您没有传递值。
所以你应该编辑你的代码:
newCmd.CommandText = "INSERT INTO Student(RegNo,FName,LName,Phone) values(@RegNo,@FName,@LName, @Phone)";
newCmd.Parameters.AddWithValue("@RegNo", RegNo);
newCmd.Parameters.AddWithValue("@FName", FName);
newCmd.Parameters.AddWithValue("@LName", LName);
newCmd.Parameters.AddWithValue("@Phone", Phone);
<强>旁注:强> 另外,编辑以下代码:
if (conn.State.ToString() == "Closed")
对此:
if (conn.State == ConnectionState.Closed)