Spuštění procedury ve Visual studiu   zodpovězená otázka

ASP.NET WebForms

Dobrý den, před nedávnem jsem zde psala ohledně problému s vyvoláním procedury. Bohužel stále tápu a nechápu. Ještě jednou se pokusím nastínit problém a doufám že mi to někdo vysvětlí jako dítěti.

Mám databázi v MS Server 2008 s názvem BenchmarkingDatabase a tvořím web ve Visual Studiu 2008. Mám vytvořenou stored proceduru, jejíž název je spVstup a má 4parametry(@ID_Rok, @ID_Skola, @ID_Ukazatel a @Hodnota). Dále mám vytvořený formulář, kde jsou 3 dropdownlisty, u každého z nich je datový zdroj. a nakonec mám tlačítko, na které chci a neumím vytvořit akci po kliknutí.

Chci aby po kliknutí se spustila vytvořená procedura spVstup, do jejíž parametrů se vloží vyplněné údaje z downlistů.

V MS SQL Serveru spouštím zmiňovanou proceduru touto syntaxí:

 
USE [BenchmarkingDatabase]
GO
DECLARE	@return_value int
EXEC	@return_value = [dbo].[spVstup]
		@ID_Rok = 5,
		@ID_Skola = 5,
		@ID_Ukazatel = 5,
		@Hodnota = 2
SELECT	'Return Value' = @return_value
GO

Jak ale vytvořit to pitomé spojení s databází ve Visual Studiu a říct tomu, že data z DropDowlnistu1 patří k parametru procedury @ID_Rok, atd..tak to teda vůbec nemám tušení. Pokoušela jsem se na to přijít podle různých článků,ale zřejmě je to nad moje síly.

Zde je kousek programového kódu. Prosím poraďte mi někdo.

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
ConnectionString="<%$ ConnectionStrings:BenchmarkingDatabaseConnectionString %>" 
SelectCommand="SELECT [Rok], [ID] FROM [Tab_Rok]"></asp:SqlDataSource>

<asp:DropDownList ID="DropDownList1" runat="server" 
DataSourceID="SqlDataSource1" DataTextField="Rok" DataValueField="Rok">
</asp:DropDownList>

............podobně DropDownList 2 a 3

<asp:Label ID="Label1" runat="server" Text="Hodnota"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="InsertButton" runat="server" CausesValidation="true" 
Text="Vlož" onclick="InsertButton_Click" />

<script runat="server">

Protected Sub InsertButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)

?????????????????????????????????????????? 

End Sub
</script> 

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ahoj,

myslim,že z tohoto odkazu to určitě pochopíš ;)

A příště,prosím,zvýrazni kusy kódu - takhle je to strašně nepřehledné.

http://www.c-sharpcorner.com/UploadFile/...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Děkuji za radu. Článek byl skvělý. Vytvořila jsem to podle něj, ale stále mi to píše chybu.

"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)"

Asi mám chybu v nastavení přípojení k té databázi, to jsem vytvořila podle článku. (http://vbnet.cz/clanek--52-komunikace_s_... Jsem z toho jelen. V čem je chyba??????

Zde je kód a základní údaje o té proceduře.

Procedura: název spVstup, 4parametry(@ID_Rok, @ID_Skola,@ID_Ukazatel,@Hodnota)

Kód default.aspx:


<%@ Page Language="C#" Debug="true" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Vkládání</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="DropDownList1" runat="server" 
    DataSourceID="SqlDataSource1" DataTextField="ID" DataValueField="ID">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:BenchmarkingDatabaseConnectionString %>" 
    SelectCommand="SELECT [ID] FROM [Tab_Rok]"></asp:SqlDataSource>
<asp:DropDownList ID="DropDownList2" runat="server" 
    DataSourceID="SqlDataSource1" DataTextField="ID" DataValueField="ID">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" 
    ConnectionString="<%$ ConnectionStrings:BenchmarkingDatabaseConnectionString %>" 
    SelectCommand="SELECT [ID] FROM [Tab_Skola]"></asp:SqlDataSource>
    <asp:DropDownList ID="DropDownList3" runat="server" 
    DataSourceID="SqlDataSource1" DataTextField="ID" DataValueField="ID">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource3" runat="server" 
    ConnectionString="<%$ ConnectionStrings:BenchmarkingDatabaseConnectionString %>" 
    SelectCommand="SELECT [ID] FROM [Tab_Ukazatel]"></asp:SqlDataSource>
<asp:Label ID="Label4" runat="server" Text="Hodnota"></asp:Label>
<asp:TextBox ID="TextBoxVloz" runat="server"></asp:TextBox><br /><br /><br />
<asp:Button ID="Button1" runat="server" Text="Vlož" OnClick="Button1_Click" />
</div>

</form>
</body>
</html>

Kód stránky default.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
    DataSet ds = new DataSet();
    SqlConnection con;
    SqlCommand cmd = new SqlCommand();
    SqlParameter sp1 = new SqlParameter();
    SqlParameter sp2 = new SqlParameter();
    SqlParameter sp3 = new SqlParameter();
    SqlParameter sp4 = new SqlParameter();

    protected void Page_Load(object sender, EventArgs e)
    {
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        con = new SqlConnection("server=SQLSER2008;database=BenchmarkingDatabase;uid=sa;pwd=heslo");
        cmd.Parameters.Add("@ID_Rok", SqlDbType.Int).Value = DropDownList1.Text;
        cmd.Parameters.Add("@ID_Skola", SqlDbType.Int).Value = DropDownList2.Text;
        cmd.Parameters.Add("@ID_Ukazatel", SqlDbType.Int).Value = DropDownList3.Text;
        cmd.Parameters.Add("@Hodnota", SqlDbType.Decimal).Value = TextBoxVloz.Text;
        cmd = new SqlCommand("spVstup", con);
        cmd.CommandType = CommandType.StoredProcedure;
        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();
    }
}


nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nějak nechápu, jestli se problém týká WinForms nebo webové aplikace v ASP.NET. Pokud je to ASP.NET, což z kódu, který uvádíte, vyplývá, tak je příspěvek zařazen ve špatné sekci fóra.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

ANO, jedná se o web v ASP.NET. Omlouvám se, za špatné zařazení.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zkontrolujte web.config soubor,sekci <connectionStrings>

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback