2010-10-25 22 views
1

我不知道這是爲什麼,基本上當我插入使用下面的函數中的一行:爲什麼在我的sql表中將空白添加到行中?

public bool CreateUser(string username, string password, string email, int age = 0) 
    { 
     SqlConnection myConnection = new SqlConnection(); 
     myConnection.ConnectionString = "Data Source=localhost\\SQLEXPRESS;" + 
     "Initial Catalog=Pubs;Integrated Security=SSPI;Trusted_Connection=True;"; 

     try 
     { 
      myConnection.Open(); 

      string query = "INSERT INTO SiteUser VALUES('" + username + "', '" + password + "', '" + email + "', " + age + ")"; 
      SqlCommand cmd = new SqlCommand(query); 
      cmd.Connection = myConnection; 
      cmd.ExecuteNonQuery(); 

      myConnection.Close(); 
     } 
     catch (Exception excep) 
     { 
      string error = excep.ToString(); 
      Response.Write(error); 

      return false; 
     } 


     return true; 
    } 

字段「密碼」結束有它空格(如「密碼」)。所以無論密碼是什麼,它都被空白空間所牽引。

奇怪的是,這不會發生在'UserName'字段,都是char(50)類型。

回答

2

我不知道這是否回答你的問題,但你爲什麼不使用varchar類型而不是char。或者你可以在你的select查詢中使用TRIM()函數。

+0

它不但他應該。 – 2010-10-25 09:27:00

+0

啊,我只是剛剛開始學習ASP.Net和SQL。我認爲它和我使用char(50)有點關係,但是爲什麼它不會發生在用戶名行上,這讓我感到困惑。用戶名行絕對是字符(50),雖然它絕對不是填充空格..奇怪的是,它也是一個主鍵雖然所以也許這就是爲什麼?但是,是的,使密碼varchar固定的問題:) – tweetypi 2010-10-25 09:38:11

3

你確定一個不是varchar(50)而一個是char(50)。你會發現指定char的數據庫列總是那麼長。

相關問題