jrlcp32 Posted May 23, 2012 at 03:05 PM Report #457649 Posted May 23, 2012 at 03:05 PM ALGUÉM QUE ME AJUDE 😄 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.SqlClient; using System.Data; using System.IO; using System.Drawing; using System.Web.Security; using System.Configuration; namespace OpenFinance.Configuracoes { public partial class ErpFinancialVars : System.Web.UI.Page { private SqlConnection mConn; private SqlDataAdapter mAdapter; private DataSet mDataSet; private static void CreateCommand(string queryString, string connectionString) { using (SqlConnection connection = new SqlConnection(connectionString)) { SqlCommand cmd = new SqlCommand(queryString, connection); cmd.Connection.Open(); cmd.ExecuteNonQuery(); } } protected void Page_Load(object sender, EventArgs e) { } public void carregaDados() { mDataSet = new DataSet(); SqlConnection conn = new SqlConnection("Data Source=(local);Initial Catalog=OpenFinance;Integrated Security=SSPI"); conn.Open(); string query = "SELECT * FROM ErpFinacialVars ORDER BY ErpFinancialVarId"; SqlCommand cmd = new SqlCommand(query, conn); mAdapter.Fill(mDataSet, "ErpFinancialVars"); gdvVars.DataSource = mDataSet; gdvVars.DataMember = "ErpFinancialVars"; } protected void CheckBox1_CheckedChanged(object sender, EventArgs e) { foreach (GridViewRow row in gdvVars.Rows) { CheckBox ch = (CheckBox)row.FindControl("CheckBox2"); if (ch != null) { ch.Checked = (sender as CheckBox).Checked; } } } protected void Selecionar_Click(object sender, EventArgs e) { foreach (GridViewRow row in gdvVars.Rows) { CheckBox ch = (CheckBox)row.FindControl("CheckBox2"); if (ch != null) { if (ch.Checked) { txtID.Text = row.Cells[1].Text; txtVariable.Text = row.Cells[2].Text; txtDescription.Text = row.Cells[3].Text; txtBUBSignal.Text = row.Cells[4].Text; txtYear.Text = row.Cells[5].Text; txtMonth.Text = row.Cells[6].Text; txtValue.Text = row.Cells[7].Text; } } } btnEditarVars.Enabled = true; btnEliminarVars.Enabled = true; btnGuardarVars.Visible = false; txtID.Enabled = false; txtVariable.Enabled = false; txtDescription.Enabled = false; txtBUBSignal.Enabled = false; txtYear.Enabled = false; txtMonth.Enabled = false; txtValue.Enabled = false; lblmsg.Visible = false; } protected void btnNovoVars_Click(object sender, EventArgs e) { { txtID.Text = ObterMaiorCodigoMaisUm().ToString(); txtVariable.Text = ""; txtDescription.Text = ""; txtBUBSignal.Text = ""; txtYear.Text = ""; txtMonth.Text = ""; txtValue.Text = ""; lblmsg.Text = "Após inserção clica em Guardar."; lblmsg.Visible = true; btnGuardarVars.Visible = true; txtID.Enabled = false; txtVariable.Enabled = true; txtDescription.Enabled = true; txtBUBSignal.Enabled = true; txtYear.Enabled = true; txtMonth.Enabled = true; txtValue.Enabled = true; } } protected void btnGuardarVars_Click(object sender, EventArgs e) { (?) } protected void btnEliminarVars_Click(object sender, EventArgs e) { (?) } protected void btnEditarVars_Click(object sender, EventArgs e) { btnGuardarVars.Visible = true; txtID.Enabled = false; txtVariable.Enabled = true; txtDescription.Enabled = true; txtBUBSignal.Enabled = true; txtYear.Enabled = true; txtMonth.Enabled = true; txtValue.Enabled = true; lblmsg.Visible = true; lblmsg.Text = "Após edição clica em Guardar."; } private int ObterMaiorCodigoMaisUm() { //variável que será retornada int codigo = 0; //Conexão SqlConnection conn = new SqlConnection("Data Source=(local);Initial Catalog=OpenFinance;Integrated Security=SSPI"); //query do comando que verifica //o maior numero da coluna ID string query = "SELECT MAX(ErpFinancialVarId) FROM ErpFinancialVars"; //instância do comando onde passo //a query e a conexão SqlCommand cmd = new SqlCommand(query, conn); //Abro conexão conn.Open(); //atribuo o maior código a variável //código dando um executescalar codigo = Convert.ToInt32(cmd.ExecuteScalar()); //fecho conexão conn.Close(); //retorno o´maior código do bd //mais um return codigo + 1; } } }
po1725 Posted May 23, 2012 at 03:41 PM Report #457660 Posted May 23, 2012 at 03:41 PM (edited) Guardar os dados da textbox na BD é conn.opne(); Sqlcommand guarda= new sqlcommand ("INSERT INTO tabela (dado1,dado2) VALUES("+textboxDado1.text+","+textboxDado2.text+" )", conn); guarda.ExecuteNonQuery(); conn.close(); Edited May 23, 2012 at 03:52 PM by po1725
Rechousa Posted May 23, 2012 at 04:28 PM Report #457680 Posted May 23, 2012 at 04:28 PM ALGUÉM QUE ME AJUDE 😄 Qual é o problema? Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa
jrlcp32 Posted May 23, 2012 at 04:30 PM Author Report #457681 Posted May 23, 2012 at 04:30 PM vou sublinhar a vermelho Rechousa
Rechousa Posted May 23, 2012 at 04:41 PM Report #457685 Posted May 23, 2012 at 04:41 PM Aqui vai uma pista: Tens que fazer o insert, update ou delete Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa
bruno1234 Posted May 23, 2012 at 08:54 PM Report #457727 Posted May 23, 2012 at 08:54 PM vou sublinhar a vermelho Rechousa 😁 Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos
jrlcp32 Posted May 24, 2012 at 07:53 AM Author Report #457768 Posted May 24, 2012 at 07:53 AM Rechousa eu sei, só que a mim da o problema do "ExecuteNonQuery"
jrlcp32 Posted May 24, 2012 at 08:16 AM Author Report #457773 Posted May 24, 2012 at 08:16 AM (edited) Rechousa (analisa-me S.F.V) - err: ExecuteNonQuery protected void btnGuardarVars_Click(object sender, EventArgs e) { string conn = ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString; using (SqlConnection con = new SqlConnection(conn)) { SqlCommand cmd = new SqlCommand("Insert into ErpFinancialVars(ErpFinancialVarId, Variable, Description, BuildUpBalanceSignal, Year, Month, Value) values(@ErpFinancialVarId, @Variable, @Description, @BuildUpBalanceSignal, @Year, @Month, @Value)", con); cmd.CommandType = CommandType.Text; cmd.Parameters.AddWithValue("@ErpFinancialVarId", txtID.Text.Trim()); cmd.Parameters.AddWithValue("@Variable", txtVariable.Text.Trim()); cmd.Parameters.AddWithValue("@Description", txtDescription.Text.Trim()); cmd.Parameters.AddWithValue("@BuildUpBalanceSignal", txtBUBSignal.Text.Trim()); cmd.Parameters.AddWithValue("@Year", txtYear.Text.Trim()); cmd.Parameters.AddWithValue("@Month", txtMonth.Text.Trim()); cmd.Parameters.AddWithValue("@Value", txtValue.Text.Trim()); con.Open(); cmd.ExecuteNonQuery(); } } Edited May 24, 2012 at 10:46 AM by jrlcp32
Caça Posted May 24, 2012 at 09:13 AM Report #457786 Posted May 24, 2012 at 09:13 AM Que erro é que está a dar? Pedro Martins Não respondo a duvidas por PM
jrlcp32 Posted May 24, 2012 at 10:49 AM Author Report #457820 Posted May 24, 2012 at 10:49 AM erro ExecuteNonQuery Cannot insert the value NULL into column 'ModifiedOn', table 'Openfinance.dbo.ErpFinancialVars'; column does not allow nulls. INSERT fails. The statement has been terminated.
Rechousa Posted May 24, 2012 at 10:55 AM Report #457821 Posted May 24, 2012 at 10:55 AM Isso acontece porque o teu campo ModifiedOn não permite valores nulos. Tens 3 hipoteses: - mudas o campo na tabela para permitir nulos; - acrescentas um default value ao campo; - colocas o campo no Insert, porque não está lá e por não estar no comando de insert, não ter um default value associado e não permitir nulos... dá erro... Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa
jrlcp32 Posted May 24, 2012 at 11:27 AM Author Report #457830 Posted May 24, 2012 at 11:27 AM Apesar de ser outra tabela o problema é o mesmo . (e ao outra tb continua 😛 ) protected void btnGuardarKpi_Click(object sender, EventArgs e) { string conn = ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString; using (SqlConnection con = new SqlConnection(conn)) { SqlCommand cmd = new SqlCommand("Insert into ErpFinancialKpiLimits(ErpFinancialKpiLimitId, FinancialKPI, MinYellow, MinRed, MaxYellow, MaxRed," + "CreatedBy, CreatedOn, ModifiedBy, ModifiedOn) values(@ErpFinancialKpiLimitId, @FinancialKPI, @MinYellow, @MinRed, @MaxYellow, @MaxRed,@CreatedOn,@ModifiedOn" + "@CreatedBy, GetDate(), @ModifiedBy, GetDate())", con); cmd.CommandType = CommandType.Text; cmd.Parameters.AddWithValue("@ErpFinancialKpiLimitId", txtKpiID.Text.Trim()); cmd.Parameters.AddWithValue("@FinancialKPI", txtFinancialKpi.Text.Trim()); cmd.Parameters.AddWithValue("@MinYellow", txtMinYellow.Text.Trim()); cmd.Parameters.AddWithValue("@MinRed", txtMinRed.Text.Trim()); cmd.Parameters.AddWithValue("@MaxYellow", txtMaxYellow.Text.Trim()); cmd.Parameters.AddWithValue("@MaxRed", txtMaxRed.Text.Trim()); con.Open(); cmd.ExecuteNonQuery(); } } Isso acontece porque o teu campo ModifiedOn não permite valores nulos. Tens 3 hipoteses: - mudas o campo na tabela para permitir nulos; - acrescentas um default value ao campo; - colocas o campo no Insert, porque não está lá e por não estar no comando de insert, não ter um default value associado e não permitir nulos... dá erro... Não tenho autorização para alterar a BD. Este é um projeto na empresa onde estou a estagiar, como é a primeira vez que utilizo ASP.NET e C# vem dai as minhas duvidas.
Rechousa Posted May 24, 2012 at 12:03 PM Report #457836 Posted May 24, 2012 at 12:03 PM Desculpa, mas não percebi... A questão dos nulos do campo ModifiedOn na tabela ErpFinancialVars ficou resolvido? Estás com outro problema, é isso? Problema novo... Tópico novo 😉 Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa
bsccara Posted May 24, 2012 at 12:18 PM Report #457839 Posted May 24, 2012 at 12:18 PM O teu problema é que estás a passar o nome da função GetDate() em vez de passar a data como parâmetro da query. Isso é transformado num NULL. Em vez de : "@CreatedBy, GetDate(), @ModifiedBy, GetDate())" faz "@CreatedBy, " + GetDate() + ", @ModifiedBy, " + GetDate() + ")"
jrlcp32 Posted May 24, 2012 at 01:42 PM Author Report #457854 Posted May 24, 2012 at 01:42 PM O teu problema é que estás a passar o nome da função GetDate() em vez de passar a data como parâmetro da query. Isso é transformado num NULL. Em vez de : "@CreatedBy, GetDate(), @ModifiedBy, GetDate())" faz "@CreatedBy, " + GetDate() + ", @ModifiedBy, " + GetDate() + ")" nao dá,o getdate() fica sublinhado a vermelho "erro" . so se criar um função !?! Desculpa, mas não percebi... A questão dos nulos do campo ModifiedOn na tabela ErpFinancialVars ficou resolvido? Estás com outro problema, é isso? Problema novo... Tópico novo 😉 Eu quando vou para editar a BD e seleciono "Allow Null" não me deixa gravar Desculpa, mas não percebi... A questão dos nulos do campo ModifiedOn na tabela ErpFinancialVars ficou resolvido? Estás com outro problema, é isso? Problema novo... Tópico novo 😉 nao dá,o getdate() fica sublinhado a vermelho "erro" . so se criar um função !?! Acho que já consegui editar 😄 Agora so insiro os dados que quero que sejam visíveis, certo ? P..S não sei se me percebeste? Afinal não deu quando vou gravar as alterações diz "Save changes is not permited "
rumbafum Posted May 24, 2012 at 02:14 PM Report #457861 Posted May 24, 2012 at 02:14 PM É impressão minha ou na instrução de insert os argumentos estão engatados, tens qualquer coisa como: insert into(10 campos diferentes) values(12 campos diferentes). O GetDate() pode ser usado à vontade é uma função de SQL Server. Ajeita é a query de insert que não está com os campos todos no into.
jrlcp32 Posted May 25, 2012 at 04:23 PM Author Report #458139 Posted May 25, 2012 at 04:23 PM Pessoal Obrigado por tudo, já consegui... se quiserem eu mostro vos como é que ficou SqlConnection connection = new SqlConnection("Data Source=(local);Initial Catalog=OpenFinance;Integrated Security=SSPI"); connection.Open(); string ErpFinancialVarId = txtID.Text; string Variable = txtVariable.Text; string Description = txtDescription.Text; string BuildUpBalanceSignal = txtBUBSignal.Text; string Year = txtYear.Text; string Month = txtMonth.Text; string Value = txtValue.Text; string sqlquery = ("INSERT INTO ErpFinancialVars (ErpFinancialVarId, Variable, Description, BuildUpBalanceSignal, Year, Month, Value) Values ('" + txtID.Text + "','" + txtVariable.Text + "','" + txtDescription.Text + "','" + txtBUBSignal.Text + "','" + txtYear.Text + "','" + txtMonth.Text + "','" + txtValue.Text + "')"); SqlCommand command = new SqlCommand(sqlquery, connection); command.Parameters.AddWithValue("ErpFinancialVarId", ErpFinancialVarId); command.Parameters.AddWithValue("Variable", Variable); command.Parameters.AddWithValue("Description", Description); command.Parameters.AddWithValue("BuildUpBalanceSignal", BuildUpBalanceSignal); command.Parameters.AddWithValue("Year", Year); command.Parameters.AddWithValue("Month", Month); command.Parameters.AddWithValue("Value", Value); command.ExecuteNonQuery(); Response.Redirect(Request.Url.ToString()); já agora eu como tenho vários campos como é que faço para o botão Update?
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now