Einfache Datenbankabfrage

olly1882

Mitglied
Hallo,

bevor es losgeht, ich komme mit PHP klar, soll jetzt jedoch in ASP etwas einfügen. Leider habe ich von ASP keine Ahnung und kenne auch keine Syntax. Mittlerweile weiss ich schon, dass es sich um ASP.NET handelt und mein Code in C# erstellt ist (schätze mal in Anlehnung an die Sprache C bzw. C++).
Die Aufgabe ist nicht schwierig, jedoch ohne ASP-Erfahrung gar nicht so einfach. Auf einer Seite soll oben links eine Firmennummer erscheinen, die aus dem MSSQL Server ausgelesen wird. Bisher habe ich folgendes gefunden, was aber nicht läuft. Das liegt daran, dass der Zusatz in ASP VB erstellt ist und mein Script wie gesagt in C#. Hier erst mal der Code:

Code:
<%@ Page language="c#" Codebehind="titlebar.aspx.cs" AutoEventWireup="false" Inherits="MISWebServices.titlebar" EnableSessionState="ReadOnly" enableViewState="False"

// Das ist eingefügt
Dim Firmennummer as String
Dim mySQLConnStr As String = "data source=SERVER;initial catalog=DB;password=PW;persist security info=True;user id=USER;packet size=4096" 
Dim mySQLQuery As String = "SELECT col FROM table" 
Dim mySQLDA As New SqlClient.SqlDataAdapter(mySQLQuery, mySQLConnStr)
Dim myDS As New Data.DataSet()
mySQLDA.Fill(myDS)

Firmennummer = myDS.Tables(0).Rows(0).Item(0)
%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
	<HEAD>
........
		<form id="titlebar" method="post" runat="server">
			<table style="WIDTH: 100%; HEIGHT: 39px" cellSpacing="0" cellPadding="0" border="0">
				<tbody>
					<tr>
						<td style="WIDTH: 30%" borderColor="#000000" align="left">
							Momentan in Verarbeitung: FIRMENNUMMER
						</td>
						<td style="WIDTH: 20%" borderColor="#000000" align="right">
.......
	</body>
</HTML>

Der Quelltext ist kaum verändert. Ich habe oben vor dem HTML Teil den Datenbankzugriff eingefügt, wie ich ihn gefunden habe. USER, PW, ... hab ich verfälscht, bei den ....... den überflüssigen Teil weggelassen.

Die Aufgabe ist, die Firmennummer auszulesen und in der Tabelle anstatt dem Text FIRMENNUMMER anzuzeigen. Kann mir jemand sagen wie das richtig lauten müsste?

Edit: siehe auch nächsten Post von mir
 
Zuletzt bearbeitet:
Ich fange zwar auch gerade heute mit ASP.NET an, aber ich arbeite schon etwas länger mit c#, und was du da machst, ist eine Zahl einem String zuweisen, weis nicht wiso das keinen Fehler bei Dir gibt, aber versuchs ganz einfach mal mit:
Code:
Firmennummer = myDS.Tables(0).Rows(0).Item(0).ToString()
mfg
ziop
 
Danke für die rasche Antwort. Leider löst das nicht mein Grundproblem, das ich die (ungefähre) Lösung in VB habe, aber die Syntax von C# brauche. Das heisst der ganze Teil muss anders aussehen:
Code:
Dim Firmennummer as String
Dim mySQLConnStr As String = "data source=SERVER;initial catalog=DB;password=PW;persist security info=True;user id=USER;packet size=4096" 
Dim mySQLQuery As String = "SELECT col FROM table" 
Dim mySQLDA As New SqlClient.SqlDataAdapter(mySQLQuery, mySQLConnStr)
Dim myDS As New Data.DataSet()
mySQLDA.Fill(myDS)

Firmennummer = myDS.Tables(0).Rows(0).Item(0)
 
Morgen

In C# sieht das so aus:

Code:
string Firmennummer;
string mySQLConnStr  = "data source=SERVER;initial catalog=DB;password=PW;persist security info=True;user id=USER;packet size=4096";
string mySQLQuery  = "SELECT col FROM table";
SqlClient.SqlDataAdapter mySQLDA = new SqlClient.SqlDataAdapter(mySQLQuery, mySQLConnStr);
Data.DataSet myDS = new Data.DataSet();
mySQLDA.Fill(myDS);

Firmennummer = myDS.Tables(0).Rows(0).Item(0);

Allerdings wäre das normaler C# Code. Ich vermute aber stark das der so auch in ASP .NET geht.

BloodyGreetz
 
Wenn du nur ein simples Feld auslesen möchtest, solltest du aber nicht die Adapter/DataSet Kombination,sondern dem skalaren Reader verwenden.

Code:
    string mySelectQuery = "SELECT count(*) FROM Orders WHERE OrderID=1";
    SqlConnection myConnection = new SqlConnection(myConnString);
    SqlCommand myCommand = new SqlCommand(mySelectQuery,myConnection);
    myConnection.Open();
    Int32 count = (int32) myCommand.ExecuteScalar();

Siehe SQLReader.ExecuteScalar

PHP und ASP unterscheiden sich von den Konzepten sehr starkt gegenüber ASP.NET.
 
Huch sry, dass ich nicht gesehen habe, das du ja C# willst, hab noch gepennt :) Zum glück gibts ja fleissige Helferlein hier ;)
 
Danke für die guten Antworten. Leider läuft das Ganze noch nicht so richtig. Ich habe es etwas umgebaut. Es läuft ohne Fehlermeldung, jedoch sehe ich keinen Wert.
Code:
string strConn = "Data Source='" + "Server" + "';UID='" + "user" + "';PWD='" + "pw" + "';Database='db;";
	string strSQL ="select wert from table";
	
	SqlConnection MyNWConn = new SqlConnection(strConn);
	DataSet MyDataSet = new DataSet();
	SqlDataAdapter oCommand = new SqlDataAdapter(strSQL,MyNWConn);
	
	oCommand.Fill(MyDataSet,"w_zzmis_ex_run");
	
	MyNWConn.Close();

Den Wert versuche ich mit
Code:
<td style="WIDTH: 30%" borderColor="#000000" align="left">
							Firma: <ASP:DataGrid id="MyDataSet" HeaderStyle-BackColor="#aaaadd" BackColor="#ccccff" runat="server"/>
						</td>
abzugreien. Wie gesagt kommt so kein Fehler, aber ich sehe auch keinen Wert.

Selbst wenn ich ein SQL Kommando wie "SELECT 'test'" nehme wird nichts angezeigt. Wo liegt der Fehler?
 
Zurück