Just nu i M3-nätverket
Gå till innehåll

marca_martin

Medlem
  • Antal inlägg

    7
  • Gick med

  • Senaste besök

    Aldrig
  1. Hej! Har problem med min applikation, har använt "DBLayer" från följande sida: http://www.codeproject.com/cs/database/DBLayer_Wizard.asp. Databasen är SQL Server Express. Dessa fel uppstår: - ExecuteReader requires an open and available Connection. The connection's current state is connecting. - There is already an open DataReader associated with this Command which must be closed first. Min connection string: Server=HELLO01\SQLEXPRESS; Database=MyApp; User ID=MyApp; Password=G871ssk8; Trusted_Connection=False; Tack på förhand! /Martin Koden: 1 public class DB 2 { 3 public DB() { } 4 public static string ConnectionString = ConfigurationManager.ConnectionStrings["InUse"].ConnectionString.ToString(); 5 public static SqlConnection Connection = new SqlConnection(ConnectionString); 6 7 public static DataSet ExecuteDataset(string Sql) 8 { 9 SqlCommand Command = new SqlCommand(Sql, Connection); 10 DataSet ds = new DataSet(); 11 SqlDataAdapter adapter = new SqlDataAdapter(Command); 12 adapter.Fill(ds); 13 adapter.Dispose(); 14 Command.Dispose(); 15 return ds; 16 } 17 18 public static DataSet ExecuteDataset(SqlCommand Command) 19 { 20 DataSet ds = new DataSet(); 21 SqlDataAdapter adapter = new SqlDataAdapter(Command); 22 adapter.Fill(ds); 23 adapter.Dispose(); 24 return ds; 25 } 26 27 public static SqlDataReader ExecuteReader(string SQLString) 28 { 29 SqlCommand Command = new SqlCommand(SQLString, Connection); 30 31 try 32 { 33 if (Command.Connection.State != ConnectionState.Open) 34 { 35 Command.Connection.Open(); 36 } 37 38 return Command.ExecuteReader(CommandBehavior.CloseConnection); 39 } 40 catch (Exception) 41 { 42 //Command.Connection.Close(); 43 throw new Exception("ERROR: " + Command.Connection.State.ToString()); 44 } 45 finally 46 { 47 Command.Dispose(); 48 //Command.Connection.Close(); 49 } 50 } 51 52 public static SqlDataReader ExecuteReader(SqlCommand Command) 53 { 54 try 55 { 56 if (Command.Connection.State != ConnectionState.Open) 57 { 58 Command.Connection.Open(); 59 } 60 return Command.ExecuteReader(CommandBehavior.CloseConnection); 61 } 62 catch (Exception) 63 { 64 //Command.Connection.Close(); 65 throw new Exception("ERROR: " + Command.Connection.State.ToString()); 66 } 67 finally 68 { 69 Command.Dispose(); 70 //Command.Connection.Close(); 71 } 72 } 73 74 public static object ExecuteScalar(string SQLString) 75 { 76 SqlCommand Command = new SqlCommand(SQLString, Connection); 77 object result = null; 78 try 79 { 80 if (Connection.State != ConnectionState.Open) 81 { 82 Connection.Open(); 83 } 84 85 result = Command.ExecuteScalar(); 86 } 87 catch (Exception ex) 88 { 89 Connection.Close(); 90 throw ex; 91 } 92 finally 93 { 94 Command.Dispose(); 95 Connection.Close(); 96 } 97 return result; 98 } 99 100 public static int ExecuteNonQuery(string SQLString) 101 { 102 SqlCommand Command = new SqlCommand(SQLString, Connection); 103 int result = -1; 104 try 105 { 106 if (Command.Connection.State != ConnectionState.Open) 107 { 108 Command.Connection.Open(); 109 } 110 111 result = Command.ExecuteNonQuery(); 112 } 113 catch (Exception ex) 114 { 115 //Command.Connection.Close(); 116 throw ex; 117 } 118 finally 119 { 120 Command.Dispose(); 121 //Command.Connection.Close(); 122 } 123 return result; 124 } 125 126 public static int ExecuteNonQuery(SqlCommand Command) 127 { 128 int result = -1; 129 try 130 { 131 if (Command.Connection.State != ConnectionState.Open) 132 { 133 Command.Connection.Open(); 134 } 135 result = Command.ExecuteNonQuery(); 136 } 137 catch (Exception ex) 138 { 139 //Command.Connection.Close(); 140 throw ex; 141 } 142 finally 143 { 144 Command.Dispose(); 145 //Command.Connection.Close(); 146 } 147 return result; 148 } 149 150 public static DataSet ExecuteSP(string SPName, ref ArrayList Parameters) 151 { 152 DataSet dsResult = new DataSet(); 153 SqlCommand Command = new SqlCommand(SPName, Connection); 154 Command.CommandType = CommandType.StoredProcedure; 155 156 if (Parameters != null) 157 { 158 for (int i = 0; i < Parameters.Count; i++) 159 { 160 Command.Parameters.Add(Parameters[i]); 161 } 162 } 163 164 try 165 { 166 SqlDataAdapter adapter = new SqlDataAdapter(Command); 167 adapter.Fill(dsResult); 168 } 169 catch (Exception ex) 170 { 171 throw ex; 172 } 173 finally 174 { 175 Command.Dispose(); 176 } 177 return dsResult; 178 } 179 180 public static int ExecuteSPNonQuery(string SPName, ref ArrayList Parameters) 181 { 182 SqlCommand cmd = new SqlCommand(); 183 cmd.Connection = Connection; 184 cmd.CommandText = SPName; 185 cmd.CommandType = CommandType.StoredProcedure; 186 187 if (Parameters != null) 188 { 189 for (int i = 0; i < Parameters.Count; i++) 190 { 191 cmd.Parameters.Add(Parameters[i]); 192 } 193 } 194 195 return ExecuteNonQuery(cmd); 196 } 197 198 public static SqlDataReader ExecuteSPReader(string SPName, ref ArrayList Parameters) 199 { 200 SqlCommand cmd = new SqlCommand(); 201 cmd.Connection = Connection; 202 cmd.CommandText = SPName; 203 cmd.CommandType = CommandType.StoredProcedure; 204 205 if (Parameters != null) 206 { 207 for (int i = 0; i < Parameters.Count; i++) 208 { 209 cmd.Parameters.Add(Parameters[i]); 210 } 211 } 212 213 if (Connection.State != ConnectionState.Open) 214 { 215 Connection.Open(); 216 } 217 218 try 219 { 220 return cmd.ExecuteReader(CommandBehavior.CloseConnection); 221 } 222 finally 223 { 224 cmd.Dispose(); 225 } 226 } 227 } Example from generated Data Access Layer: 1 public class DBPerson : DB 2 { 3 private DBPerson() { } 4 5 public static DataSet GetAll() 6 { 7 ArrayList Parameters = new ArrayList(0); 8 9 SqlParameter SiteIDParameter = new SqlParameter("@SiteID", SqlDbType.Int); 10 SiteIDParameter.Size = 0; 11 SiteIDParameter.Value = GlobalVariables.CurrentSiteID; 12 Parameters.Add(SiteIDParameter); 13 14 DataSet dsResult = ExecuteSP("[spPerson_GetAll]", ref Parameters); 15 16 return dsResult; 17 } 18 19 public static SqlDataReader GetAllReader() 20 { 21 ArrayList Parameters = new ArrayList(0); 22 23 SqlParameter SiteIDParameter = new SqlParameter("@SiteID", SqlDbType.Int); 24 SiteIDParameter.Size = 0; 25 SiteIDParameter.Value = GlobalVariables.CurrentSiteID; 26 Parameters.Add(SiteIDParameter); 27 28 SqlDataReader readerResult = ExecuteSPReader("[spPerson_GetAll]", ref Parameters); 29 30 return readerResult; 31 } 32 } [inlägget ändrat 2006-06-27 20:27:26 av marca_martin]
  2. Det var som tusan. Det var faktan som hade lagts sig i mitt minne, frågar mig också vart den kom ifrån! Jag trodde Express-varianten av Visual Studio var en fortsättning på WebMatrix. Intressant att de ska ta betalt för SQL Server Express dessutom, MSDE är ju gratis. Jag känner på mig att detta har med Microsofts strategi att tjäna pengar att göra...
  3. Jag har inte själv använt detta, men tror att det finns möjlighet att göra detta i sjlva IE. Gå upp i Vertyg -> Internet-alternativ. Klicka på fliken Innehåll. Där finns "Klassificering av innehåll", klicka på knappen Inställningar där. Under fliken "Godkända platser" skriver du in * och klickar sedan på Aldrig. De platser du vill att man ska ha tillgång till skriver du in på samma sätt, men klickar istället på Alltid. Hoppas det funkar!
  4. Nej, Visual Studio Express kommer förbli gratis. Jag är inte så insatt i vad den har och vad den saknar, men jag förmodar att det är funktioner för att utveckla mer komplexa lösningar, versionshantering och debugging-funktioner.
  5. Eller så klickar du dig runt på http://www.asp.net/Tutorials/quickstart.aspx och andra guider på Internet, samtidigt som du laddar ner Visual Studio Express och provar dig fram. De har även ett flertal exempelapplikationer på www.asp.net som man kan studera och prova sig fram med. Ett tips är att få en överblick över .NET Framework och hur hela plattformen är uppbyggd, och inte gå djupt ner i ASP.NET på direkten. Kan ju vara en idé att hoppa till version 2 direkt, men det kan nog vara bra att känna till tidigare versioner också. Lycka till! Hälsningar, Martin C
  6. VB.NET är ett programmeringsspråk från Microsoft, men man behöver inte ha något utvecklingsverktyg från MS. Visual Studio är dock ett utvecklingsverktyg för att bland annat programmera VB.NET, men är alltså bara en av alla utvecklingsverktyg som finns för att kunna göra detta. Visual Studo 2005 Express är en light-variant av Visual Studio från MS som är gratis. Denna har de flesta funktionerna du behöver och räcker långt om du ska arbeta enskilt med ett projekt. Innan du börjar kan det vara på att läsa på sig lite om hur .NET Framework fungerar i stort. Lycka till! Hälsningar, Martin C
  7. Jajjamensan, vilket är väldigt bra!
×
×
  • Skapa nytt...