2015-07-20 7 views
0

У меня есть эта таблица, которая содержит несколько-х вопросов:проверить, если имя пользователя существует, чтобы показать таблицу базы данных или шо в поле

<table> 
    <tr><td><b>Utilizador:</b></td><td><asp:Label ID="username" runat="server"></asp:Label></td></tr> 
    <tr><td><b>Telefone da Empresa:</b></td><td><asp:TextBox ID="empresa" runat="server" MaxLength="13"></asp:TextBox> (Exemplo: +351234925xxx)</td></tr> 
    <tr><td><b>2º Telefone:</b></td><td><asp:TextBox ID="empresa2" runat="server" MaxLength="4"></asp:TextBox> (Exemplo: xxxx)</td></tr> 
    <tr><td><b>Telemóvel:</b></td><td><asp:TextBox ID="telemovel" runat="server" MaxLength="13"></asp:TextBox> (Exemplo: +3519xxxxxxxx)</td></tr> 
    <tr><td colspan="2"><asp:Label ID="lblInfo" runat="server" Font-Bold="True"></asp:Label></td></tr> 
    <tr><td><asp:Button ID="cmdSave" runat="server" Text="Guardar" onclick="cmdSave_Click" /></td><td></td></tr> 
</table> 

моя цель состоит при загрузке страницы проверьте, если username.Text = "[" + HttpContext.Current.User.Identity.Name + "]"; я pretent сделать проверить, если уже существует в базе данных доступа, если ДА показать таблицу с информацией для обновления если NO показать таблицу, чтобы вставить информацию

, как я могу сделать такую ​​вещь работает?

мой код позади:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data; 
using System.Data.OleDb; 
using System.Security.Principal; 

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     username.Text = "[" + HttpContext.Current.User.Identity.Name + "]"; 
    } 


    protected void cmdSave_Click(object sender, EventArgs e) 
    { 
     string sFilePath = Server.MapPath("Database3.accdb"); 
     OleDbConnection Conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + sFilePath + ";Persist Security Info=False;"); 
     string insertCmd = "INSERT INTO colaborador(Empresa,Empresa2,Telemovel,username) VALUES (@Empresa,@Empresa2,@Telemovel,@username)"; 
     using (Conn)  
     { 
      Conn.Open(); 
      OleDbCommand myCommand = new OleDbCommand(insertCmd, Conn); 
      myCommand.Parameters.AddWithValue("@Empresa", empresa.Text); 
      myCommand.Parameters.AddWithValue("@Empresa2", empresa2.Text); 
      myCommand.Parameters.AddWithValue("@Telemovel", telemovel.Text); 
      myCommand.Parameters.AddWithValue("@username", HttpContext.Current.User.Identity.Name);    
      Response.Write(" "); 
      myCommand.ExecuteNonQuery(); 
      lblInfo.Text = "Dados guardados!"; 
      lblInfo.ForeColor = System.Drawing.Color.Green; 
     } 
    } 
} 

ответ

0

Если я правильно получать вас, то вы хотите обновить запись, если там уже с этим именем пользователя или вставить. Поэтому, чтобы исправить это, я делаю некоторые изменения в вашем запросе, но я бы сказал, чтобы использовать хранимую процедуру вместо того, чтобы использовать такой запрос.

protected void cmdSave_Click(object sender, EventArgs e) 
{ 
    string sFilePath = Server.MapPath("Database3.accdb"); 
    OleDbConnection Conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + sFilePath + ";Persist Security Info=False;"); 
    string insertCmd = "IF NOT EXISTS(Select * FROM colaborador where [email protected])"+ 
          "INSERT INTO colaborador(Empresa,Empresa2,Telemovel,username) VALUES (@Empresa,@Empresa2,@Telemovel,@username)"+ 
         "ELSE"+ 
          "Update colaborador SET [email protected],[email protected],[email protected] where [email protected]"; 
    using (Conn)  
    { 
     Conn.Open(); 
     OleDbCommand myCommand = new OleDbCommand(insertCmd, Conn); 
     myCommand.Parameters.AddWithValue("@Empresa", empresa.Text); 
     myCommand.Parameters.AddWithValue("@Empresa2", empresa2.Text); 
     myCommand.Parameters.AddWithValue("@Telemovel", telemovel.Text); 
     myCommand.Parameters.AddWithValue("@username", HttpContext.Current.User.Identity.Name);    
     Response.Write(" "); 
     myCommand.ExecuteNonQuery(); 
     lblInfo.Text = "Dados guardados!"; 
     lblInfo.ForeColor = System.Drawing.Color.Green; 
    } 
} 
+0

Вы можете указать пример хранимой процедуры, используя мой код @Anupam Sharma? Примечание: с вашим решением я получаю кучу ошибок в «string insertCmd» – KikoFHM

+0

Чтобы исправить ошибки, я обновил проверку asver pz. Для сохраненного proc pz проверьте этот http://stackoverflow.com/questions/3287545/how-do-i-make-a-stored-procedure-in-ms-access –

 Смежные вопросы

  • Нет связанных вопросов^_^