Slacker 0 Denunciar post Postado Janeiro 9, 2007 Olá prezados,Bom, estou desenvolvendo uma aplicação Windows Form, e uso uma conexão com banco do SQL Server 2005 Express.E estou fazendo o seguinte:Para os inserts:OleDbConnection objConnection = null;OleDbCommand objCmd = null;string strSQL;string strConnection = "Provider=SQLOLEDB;Server=MEDEIROS\\SQLEXPRESS;Database=banco;User Id=bordotti;Password=medeiros;";objConnection = new OleDbConnection(strConnection);objConnection.ConnectionString = strConnection;objConnection.Open();strSQL = "INSERT INTO cadastro (codigo,nome,idade,data) VALUES (1,2,3,getDate())";try{objCmd = new OleDbCommand(strSQL, objConnection);objCmd.ExecuteNonQuery();MessageBox.Show("Informação incluída com sucesso!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information);}catch{MessageBox.Show("erro", "erro");} O código acima funciona perfeitamente, criei ele só para fazer um teste E utilizo para select :OleDbConnection objConnection = null;OleDbCommand objCmd = null;string strSQL;string strConnection = "Provider=SQLOLEDB;Server=MEDEIROS\\SQLEXPRESS;Database=banco;User Id=bordotti;Password=medeiros;";objConnection = new OleDbConnection(strConnection);objConnection.ConnectionString = strConnection;strSQL = "select * from cadastro";objCmd = new OleDbCommand(strSQL,objConnection);OleDbDataAdapter dataAdapter = new OleDbDataAdapter(strSQL,objConnection);try{objConnection.Open();ler = objCmd.ExecuteReader();if (ler.HasRows){while (ler.Read()){//this.listBox1.Items.Add(dataReader.GetString(3));MessageBox.Show(ler.GetString(1), "Resultado Data Reader");}}else{MessageBox.Show("Não achou nada", "Ae!");}}catch{}finally{} Também funciona perfeitamente, sem problema algum. Más minha dúvida é a seguinte, percebi que tenho que escrever várias linhas de códigos para se fazer um procedimento, e utilizar vários recursos do OleDb. Gostaria de saber se há uma maneira mais prática para se fazer esses procedimentos ou com menos linhas de código? Não sei se alguém aqui programa em java, más la costumo criar a conexão para inicar com o programa, e só manipulo os comandos SQL depois. Há maneira de fazer isso no C#?E outra dúvida que no começo foi o que mais me confundiu é, como saber quando devo utilizar DataReader, DataAdapter, DataBindings, OleDbcommand, enfim, esses inúmeros recursos que há para conexão, nunca sei qual tem que usar com qual, existe alguma regra ou definição para isso? Me disseram ( e eu já tentei porém sem sucesso) para utilizar o SQL Client nativo do SQL Server com o visual studio para fazer a conexão, eu fiz a conexão porém não sei como utilizar aquele DataSet, e outros recursos por exemplo para inserir num botão para fazer o procedimento de Insert no banco. Se alguém puder me dar uma luz, com algumas explicações e exemplos eu agradeço.Obrigado desde já pessoalAbraço! Compartilhar este post Link para o post Compartilhar em outros sites
arr 0 Denunciar post Postado Janeiro 9, 2007 Amigo, Faça uma camada de acesso aos dados. Isso facilita bastante as coisas. Normalmente programo em VB.Net no asp.net com access ou mysql. Tenho uma classe com as subs para fazer os inserts e deletes e functions para retornar Datasets ou datareaders. Classe de acesso aos dados: Exemplo parcial Namespace mDataPublic Class myData Public Sub m_commDB(ByVal strSQL As String) Dim conexao As New MySqlConnection(strconnection) Dim ComandoDB As New MySqlCommand(strSQL, conexao) Try conexao.Open() ComandoDB.ExecuteNonQuery() Catch ex As MySqlException ' Trata a exceção End Try conexao.Close() End Sub Public Function mDataSet(ByVal SQL As String) As DataSet Dim DS As New DataSet Dim MyCommand As New MySqlDataAdapter(SQL, conn) Try MyCommand.Fill(DS, "Table1") Return DS Catch ex As MySqlException Return Nothing Finally DS.Dispose() End Try End FunctionEnd ClassEnd NamespaceAssim nas páginas que tenho que acessar o banco resolvo a questão em apenas uma ou duas linhas sem me preocupar em criar conexão, etc: 'Cria o objetoPublic mData As New mData.myDataSub InsereCliente()Dim SQL as String="INSERT INTO _clientes ........")mData.m_commDB(SQL)End SubSub MostraClientes()Dim DS As New DataSetDS =mData.mDataSet("SELECT idcliente, nome FROM _clientes ORDER BY nome")'.....End SubExistem várias formas de criar sua camada, faça uma busca por DAL e .Net que se encontra bastante material. Compartilhar este post Link para o post Compartilhar em outros sites
Thiago.net 0 Denunciar post Postado Janeiro 16, 2007 a melhor maneira é não utilizar OleDb ( pois é genérico e um Cast para o banco de dados correto é efetuado.)Por isso utilize SqlClient ou OracleClient que será mais rápido.[]'s Compartilhar este post Link para o post Compartilhar em outros sites
Macal 0 Denunciar post Postado Janeiro 26, 2007 estou utilizando o VWDEE (Visual Web Developer Express Edition) e o SSMSE (Sql Server Management Studio Express) e n estou tendo mto trabalho.São bem simples e tem inumeros recursos que facilitam o trabalho Compartilhar este post Link para o post Compartilhar em outros sites
Thiago.net 0 Denunciar post Postado Janeiro 26, 2007 estou utilizando o VWDEE (Visual Web Developer Express Edition) e o SSMSE (Sql Server Management Studio Express) e n estou tendo mto trabalho.São bem simples e tem inumeros recursos que facilitam o trabalhoacho q a dúvida dele era referente a código... :unsure: mas tudo bem http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites