¿SqlConnection en ASP.NET con C#?

Grunt

Bovino adicto
#1
Saludos compañeros bakunos, ojála y esta pregunta si me la puedan responder n_n.

Pues tengo un control .ascx (en c#)de mi carrito de compras, en el cual tengo la siguiente información:

<asp:GridView ID="grdCart" runat="server" AutoGenerateColumns="False"
DataKeyNames="ProductID" OnRowCancelingEdit="grdCart_RowCancelingEdit"
OnRowDeleting="grdCart_RowDeleting" OnRowEditing="grdCart_RowEditing"
OnRowUpdating="grdCart_RowUpdating" BackColor="White" BorderColor="#CCCCCC"
BorderStyle="None" BorderWidth="1px" CellPadding="3">
<RowStyle ForeColor="#000066" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("ImageUrl", "~/Images/thumb_{0}") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="ProductName" HeaderText="Producto" ReadOnly="True" />
<asp:BoundField DataField="Quantity" HeaderText="Cantidad" />
<asp:BoundField DataField="Price" DataFormatString="{0:c}" HeaderText="Precio"
ReadOnly="True" />
<asp:BoundField DataField="SubTotal" DataFormatString="{0:c}" HeaderText="Total"
ReadOnly="True" />
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
</Columns>
<FooterStyle BackColor="White" ForeColor="#000066" />
<PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
<EmptyDataTemplate>
Tu carrito esta vacio
<a href="Products.aspx">Agrega productos</a>
</EmptyDataTemplate>
<SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
</asp:GridView>
<asp:Label ID="TotalLabel" runat="server"></asp:Label>
Aqui el total de la compra se guarda en el TotalLabel.

En la misma ventana tengo un formulario y un boton para confirmar la compra.


y en mi ascx.cs.

public partial class CartControl : System.Web.UI.UserControl
{

protected void Page_Load(object sender, EventArgs e)
{
if (Profile.SCart == null)
{
Profile.SCart = new ShoppingCartExample.Cart();
}
if (!Page.IsPostBack)
{
ReBindGrid();
}
if (Profile.SCart.Items == null)
{
TotalLabel.Visible = false;
}
}
protected void grdCart_RowEditing(object sender, GridViewEditEventArgs e)
{
grdCart.EditIndex = e.NewEditIndex;
ReBindGrid();
}
protected void grdCart_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
TextBox txtQuantity = (TextBox)grdCart.Rows[e.RowIndex].Cells[2].Controls[0];
int Quantity = Convert.ToInt32(txtQuantity.Text);
if (Quantity == 0)
{
Profile.SCart.Items.RemoveAt(e.RowIndex);
}
else
{
Profile.SCart.Items[e.RowIndex].Quantity = Quantity;
}
grdCart.EditIndex = -1;
ReBindGrid();
}
protected void grdCart_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
grdCart.EditIndex = -1;
ReBindGrid();
}
protected void grdCart_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
Profile.SCart.Items.RemoveAt(e.RowIndex);
ReBindGrid();
}
private void ReBindGrid()
{
grdCart.DataSource = Profile.SCart.Items;
DataBind();
TotalLabel.Text = string.Format("Total:{0,19:C}", Profile.SCart.Total);
}
protected void Confirmar_Click(object sender, EventArgs e)
{

SqlConnection Conexion = new
SqlConnection("server=(C:/USERS/MARCO TULIO/DOCUMENTS/PAGINA/SHOPPINGCARTEXAMPLE - COPIA/SHOPPINGCARTEXAMPLE/APP_DATA/DATABASE.MDF);database=pubs;Integrated Security=SSPI");

String SQLINSERT = "INSERT INTO registro VALUES (@Nombre, @Correo, @Telefono, @Estado, @Municipio, @Poblacion, @Colonia, @CP,@Monto ,@ID_venta)";
SqlCommand Comando = new SqlCommand(SQLINSERT, Conexion);
Comando.CommandType = CommandType.Text;
Comando.Parameters.AddWithValue("@Nombre", Nombre.Text);
Comando.Parameters.AddWithValue("@Correo", Correo.Text);
Comando.Parameters.AddWithValue("@Telefono", Telefono.Text);
Comando.Parameters.AddWithValue("@Estado", Estado.Text);
Comando.Parameters.AddWithValue("@Municipio", Municipio.Text);
Comando.Parameters.AddWithValue("@Poblacion", Poblacion.Text);
Comando.Parameters.AddWithValue("@Colonia", Colonia.Text);
Comando.Parameters.AddWithValue("@CP", CP.Text);
Comando.Parameters.AddWithValue("@Monto", TotalLabel.Text);
Conexion.Open();
Comando.ExecuteNonQuery();
Conexion.Close();

}
}
El path de la conexion es temporal, para hacer las pruebas

(El ID_Venta, es un valor identity que tengo en la base de datos).

Pero me aparece este error

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
Bueno, una vez explicado, ¿algúien me podria ayudar con esto? esque la verdad si me urge un poco en mi trabajo, cualquier explicación se los agradeceria mucho.
 
#2
Por que la base de datos la tienes como un archivo mdf en disco y no como una base de datos en la instancia de Sql Server??, ya checaste las propiedades de seguridad de tu servidor Sql Server, ya checaste la inner exception de tu excepcion?
 

ChrisOnasis

Bovino maduro
#3
Tiene razón

Por que la base de datos la tienes como un archivo mdf en disco y no como una base de datos en la instancia de Sql Server??, ya checaste las propiedades de seguridad de tu servidor Sql Server, ya checaste la inner exception de tu excepcion?

Deberías usar la instancia de Base de Datos NO el archivo MDF.
 
#4
como mencionan los bakunos aca arriba, estas tratando de conectarte a una bd de access supongo, jet ole o algo parecido, y tu conector es de sql que sirve para bases de datos en sql server, para q no te metas en pedos... mejor en tu proyecto agrega un dataset y esa cosa te va guiando para tu conexion y tu sentencia.
 

Grunt

Bovino adicto
#5
Ok, gracias por sus comentarios, cambiare de lugar mi bd de tenerla dentro del proyecto a una instancia sql.

¿Cuando suba la web a internet tendria que configurar algo más para que siga funcionando la bd?
 
Arriba