1

那是我的访问代码:

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.

实际上,这是将简单 sql 集成到 c# 的 Windows 窗体应用程序,但是当我推送添加新的学生方法时程序崩溃...

4

1 回答 1

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)
于 2013-07-23T10:18:27.190 回答