Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: ConfigurationManager.ConnectionStrings

Прошу прощения, делаю по науке

в файле web.config
<connectionStrings>
     <add name="SC" 
          connectionString="Data Source=(localdb)\\v11.0; Initial Catalog=Test; Integrated Security=true; User ID=sa; Password=;" 
           />
  </connectionStrings>


в контроллере

public string StrConnWork = ConfigurationManager.ConnectionStrings["SC"].ConnectionString;


ошибка
Ссылка на объект не указывает на экземпляр объекта.

если просто
public string StrConnWork="Data Source=(localdb)\\v11.0; Initial Catalog=Test; Integrated Security=true; User ID=sa; Password=;"


то все работает.
почему не цепляет?
Ответ: нашел еще один web.config
<?xml version="1.0" encoding="utf-8"?>
<!--
  Дополнительные сведения и инструкции по настройке приложения ASP.NET см. по адресу
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>
  <appSettings>
    <add key="webpages:Version" value="2.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="PreserveLoginUrl" value="true" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  </appSettings>

  <connectionStrings>
    <add name="SC"
         connectionString="Data Source=(localdb)\\v11.0; Initial Catalog=Test; Integrated Security=true; User ID=sa; Password=;"
         providerName="System.Data.SqlClient" />
  </connectionStrings>
  
  <system.web>
    <httpRuntime targetFramework="4.5" />
    <compilation debug="true" targetFramework="4.5" />
    <pages>
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
      </namespaces>
    </pages>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
  </system.webServer>
</configuration>

вставил и перехватило как надо.
Не в том конфиге ковырялся.
СПАСИБО, огромное!
Вопрос: Имя ConfigurationManager не существует в текущем контексте

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data.OleDb;
using System.Configuration;
 
namespace library
{
    public partial class FMain : Form
    {
        public FMain()
        {
            InitializeComponent();
            //Создание конфиг. менеджера для работы с настройками подключения
            SqlConnectionStringBuilder csBuilder = new
            SqlConnectionStringBuilder(ConfigurationManager..ConnectionStrings["SQLServer"].ConnectionString);
            //имя сервера
            string ServerName = csBuilder.DataSource;
            //имя базы данных
            string DBName = csBuilder.InitialCatalog;
            //строка подключения
            string ConnectionString = "Data Source=" + ServerName + ";Initial Catalog=" + DBName + ";Integrated Security=True";
        }
Ответ: Demon666_2017, уверен что не путаешь using с добавлением ссылки на сборку?

Добавлено через 28 минут
В коде есть еще ошибка с двойной точкой после ConfigurationManager, но я исхожу из того что это опечатка на форуме т.к, ошибка в этом случае будет другой - Identifier expected.
Вопрос: vs2015 windows service - ConfigurationManager

Пишу сервис (а может, службу)

Надо прочитать настройки из конфига


Не могу
на ConfigurationSettings пишет, что obcolete

а на ConfigurationManager говорит, что
автор
CS0234 C# Тип или имя пространства имен "ConfigurationManager" не существует в пространстве имен "System.Configuration" (возможно, отсутствует ссылка на сборку).
            string strConn1 = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"].ToString();

            string strConn2 = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"].ToString();

framework 4.5.2

К сообщению приложен файл. Размер - 19Kb
Ответ: Сон Веры Павловны,
Как перенести настройки из Local в Roaming так и не сказал.
Вопрос: ConfigurationManager

В textbox1 и textbox2 вводятся данные, которые надо сохранить.
Код C#
1
2
3
4
5
6
7
8
9
        private void Save_Click(object sender, EventArgs e)
        {
            Configuration con = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            con.AppSettings.Settings["upload"].Value = this.textBox1.Text;
            con.AppSettings.Settings["download"].Value = this.textBox2.Text;
            con.Save(ConfigurationSaveMode.Modified);
            ConfigurationManager.RefreshSection("AppSettings");
 
        }
И, как то не работает, выдает ошибку:
Дополнительные сведения: В экземпляре объекта не задана ссылка на объект.
Почему?)
Ответ: Cupko, Попробую щас)

Не по теме:

Я когда добавил ответ, ушел курить, лол) два поста сразу



Добавлено через 17 секунд
Cupko, Попробую щас)

Не по теме:

Я когда добавил ответ, ушел курить, лол) два поста сразу



Добавлено через 8 минут
Cupko, Отлично в xml он записал name.exe.(сам xml), теперь вопрос. как выгружать то данные?)
Мне требуется тогда в функцию добавить условия настройки из xml.
т.е
Код C#
1
fout = new FileStream("C:\\"+date2+"\\p3001"+Date+"."+ch[1]+"SS", FileMode.Create);
Надо видоизменить на приблизительно такое:
Код C#
1
fout = new FileStream(+UpDownload(вытащить сюда данные из Updownload)+date2+"\\p3001"+Date+"."+ch[1]+"SS", FileMode.Create);
Вопрос: Вопросы по работе с MsSql

Всем привет. Прошу помощи в проблеме так как даже не знаю как ее гуглить иначе бы не писал сюда. В общем по пытаюсь как можно подробнее. Мне понадобилась локальная база данных, может я что то не верно понял по этому и выбрал MsSql local. В общем мне нужна локальное хранилище данных переносимое вместе с проектом. Думаю я выбрал верно. Я создал архитектуру будущей базы, весь проект у меня разделен на сборки и я создал ДАЛ библиотеку в одном решение с .exe. Далее я решил протестировать данную базу и архитектуру, Я создал еще одну библ. консоль апликейшен и начал писать тесты, изначально мне нужно было написать генерилку данных, когда с ней было покончено я получил ряд проблем. Я обнаружил что запускается ConnectionStrings только из проекта тестов мне показалось это очень странным. Как запустить ConnectionStrings ДАЛ сборки я не понял... Конекшен в обоих случаях лежит одинаковый но парадокс работает он видимо исходя из контекста по разному. Вот конекшен
C#
1
2
3
4
5
6
    <connectionStrings>
      <clear/>
        <add name="DalClickBot.Properties.Settings.ClickBotDataBaseConnectionString"
            connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\ClickBotDataBase.mdf;Integrated Security=True"
            providerName="System.Data.SqlClient" />
    </connectionStrings>
Аномалия заключается в следующем файл базы данных копируется в тестовую сборку и вся вставка данных сохраняется в эту сборку в бд, а бд в ДАЛ лежит не тронутое оО. Сам файл базы не лежит не в проекте не в дебаге о его существовании я узнаю только открыв SQL Server Object Explorer. Не в обозреватели серверов не где больше его просто нет оО. Я добился записи в бд в дал таким способом
C#
1
2
3
4
5
6
7
8
 using (SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\ClickBotDataBase.mdf;Integrated Security=True"))
            {
               // conn.ConnectionString = ConfigurationManager.ConnectionStrings["DalClickBot.Properties.Settings.ClickBotDataBaseConnectionString"].ConnectionString;
                //Console.WriteLine(conn.ConnectionString);
                conn.Open();
                SqlCommand comm = new SqlCommand(sql, conn);
                comm.ExecuteNonQuery();
            }
Сказать честно он меня не очень устраивает хотелось бы из конфига. Но когда я так делаю по путно ловлю вот такую ошибку
C#
1
2
Серьезность Код Описание    Проект  Файл    Строка
Предупреждение      Не удалось скопировать "C******\DalClickBot\ClickBotDataBase_log.ldf" в "bin\Debug\ClickBotDataBase_log.ldf". Начинается повторная попытка 1 в 1000 мс. Процесс не может получить доступ к файлу "bin\Debug\ClickBotDataBase_log.ldf", так как этот файл используется другим процессом. TestDalClickBot     
вопросы таковы
1 почему происходит копирование и правильно ли это оО
2 если это не правильно как это исправить
3 как брать ConnectionStrings из дал сборки

заранее огромное спасибо.
Ответ:
Сообщение от FrozenRain
почему они ее назвали локал
Точно я вам этого не скажу, но вероятно потому, что она создается на вашей локальной машине, а не в сети.
Но для ее работы SqlServer все равно понадобится.
Вопрос: загрузка pdf file на sql server

привет ребята

этот код зачем не работает?

Imports System.IO
Imports System.Data
Imports System.Data.SqlClient


Public Class up
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    End Sub

    Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnUpload.Click
        Dim filePath As String = FileUpload1.PostedFile.FileName
        Dim FileName As String = Path.GetFileName(filePath)
        Dim ext As String = Path.GetExtension(FileName)
        Dim contenttype As String = String.Empty

        Select Case ext
            Case ".doc"
                contenttype = "application/vnd.ms-word"
                Exit Select
            Case ".docx"
                contenttype = "application/vnd.ms-word"
                Exit Select
            Case ".xls"
                contenttype = "application/vnd.ms-excel"
                Exit Select
            Case ".xlsx"
                contenttype = "application/vnd.ms-excel"
                Exit Select
            Case ".jpg"
                contenttype = "image/jpg"
                Exit Select
            Case ".png"
                contenttype = "image/png"
                Exit Select
            Case ".gif"
                contenttype = "image/gif"
                Exit Select
            Case ".pdf"
                contenttype = "application/pdf"
        End Select
        If contenttype <> String.Empty Then
            Dim fs As Stream = FileUpload1.PostedFile.InputStream
            Dim br As New BinaryReader(fs)
            Dim bytes As Byte() = br.ReadBytes(fs.Length)

            Dim strQuery As String = "insert into Files" _
                                     & "(Name,ContentType,Data)" _
                                     & "values (@Name,@ContentType,@Data)"
            Dim cmd As New SqlCommand(strQuery)
            cmd.Parameters.Add("@Name", SqlDbType.NVarChar).Value = FileName
            cmd.Parameters.Add("@ContentType", SqlDbType.NVarChar).Value = contenttype
            cmd.Parameters.Add("@Data", SqlDbType.Binary).Value = bytes

            InsertUpdateData(cmd)
            lblMessage.ForeColor = System.Drawing.Color.Green
            lblMessage.Text = "File ugurla yuklendi"
        Else
            lblMessage.ForeColor = System.Drawing.Color.Red
            lblMessage.Text = "Faylin Formati Duz deyil." _
                & "pdf/word/excell formatli fayllar yukleyin"
        End If
    End Sub

    Public Function InsertUpdateData(ByVal cmd As SqlCommand) As Boolean

        Dim strConnString As String = System.Configuration.ConfigurationManager.ConnectionStrings("conString").ConnectionString
        Dim Con As New SqlConnection(strConnString)
        cmd.CommandType = CommandType.Text
        cmd.Connection = Con
        Try
            Con.Open()
            cmd.ExecuteNonQuery()
            Return True
        Catch ex As Exception
            Response.Write(ex.Message)
            Return False
        Finally
            Con.Close()
            Con.Dispose()

        End Try

    End Function

End Class
Ответ:
yaxta
ERR_CONNECTION_RESET

Точное место ошибки где? Строка какая? cmd.ExecuteNonQuery()?

yaxta
explorer не подключается

Windows или Internet Explorer? К чему не подключается?
Вопрос: binding listbox к observecollection в xaml

Добрый день! Задача простая, но никак не могу ее разрешить.
Хочу привязать observecollection к listbox в xaml-коде.
Исходники следующие:

класс объекта- строки представляющий собой запись в listbox
Imports System.ComponentModel

Public Class dn

    Dim dn_no As String
    Dim ddep As String
    Dim dest As String
    Dim balans As Decimal

    Public Property mydn As String
        Get
            Return dn_no
        End Get

        Set(ByVal value As String)
            dn_no = value
        End Set
    End Property
    Public Property _ddep As String
        Get
            Return ddep
        End Get

        Set(ByVal value As String)
            ddep = value
        End Set
    End Property

    Public Property _dest As String
        Get
            Return dest
        End Get

        Set(ByVal value As String)
            dest = value
        End Set
    End Property

    Public Property _balanc As Decimal
        Get
            Return balans
        End Get

        Set(ByVal value As Decimal)
            balans = value
        End Set
    End Property

    Sub New(dn As String,
            ddep As String,
            dest As String,
            balans As Decimal)

        Me.dn_no = dn
        Me.ddep = ddep
        Me.dest = dest
        Me.balans = balans

    End Sub

End Class


код окна MainWindow.xaml.vb
Imports System.Data.SqlClient
Imports System.Configuration
Imports System.Collections.ObjectModel

Class MainWindow

    Public Sub New()

        Dim cn = New SqlConnection(
            ConfigurationManager.ConnectionStrings("ms_cn").ConnectionString)
        Dim cm As New SqlCommand("get_info_bp", cn)

        cm.CommandType = System.Data.CommandType.StoredProcedure

        InitializeComponent()
        Dim recColl = New ObservableCollection(Of dn)

        cn.Open()
        Dim reader As SqlDataReader = cm.ExecuteReader()

        Using cn
            While reader.Read()
                'adding row data to observable
                recColl.Add(New dn(reader("My_dn_no").ToString, reader("ddep").ToString, reader("dest").ToString, reader("balans").ToString))
            End While
        End Using

        ' Me.lbx.ItemsSource = recColl

    End Sub


End Class


код xaml
<Window x:Class="MainWindow" x:Name="mwnd"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApplication1"
        mc:Ignorable="d"
        DataContext="{Binding RelativeSource={RelativeSource Self}}"
      
        
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>

        <ListBox Name="lbx"  ItemsSource="{Binding Path=recColl}" DisplayMemberPath="mydn"  >
        </ListBox>

    </Grid>
</Window>


Проблема в следующем: если я раскоментирую строку " ' Me.lbx.ItemsSource = recColl" , т.е. сделаю привязку в codebehind, то listbox отображает объекты, но мне нужно привязать декларативно- т.е. в xaml- разметке. Но listbox в таком случае получается пустым.
В окне интерпретации пишет следующее сообщение :
System.Windows.Data Error: 40 : BindingExpression path error: 'recColl' property not found on 'object' ''MainWindow' (Name='mwnd')'. BindingExpression:Path=recColl; DataItem='MainWindow' (Name='mwnd'); target element is 'ListBox' (Name='lbx'); target property is 'ItemsSource' (type 'IEnumerable')

Как это можно обойти? Спасибо
Ответ: создавайте модель в App.xaml, а привязывайте к окну через StaticResource
Вопрос: Асинхронное чтение данных ExecuteReaderAsync

Всем привет, не могу корректно асинхронно считать данные.

 Public Async Function get_items() As Task(Of Dictionary(Of UInt32, good_item))

        Dim d As New Dictionary(Of UInt32, good_item)
        Dim connectionString = ConfigurationManager.ConnectionStrings("ms").ConnectionString
        Using con As New SqlConnection(connectionString)
            Using myCmd As SqlCommand = New SqlCommand("get_all_nom", con)
                myCmd.CommandType = CommandType.StoredProcedure
                Await con.OpenAsync()
                Using reader = Await myCmd.ExecuteReaderAsync()
                    While Await reader.ReadAsync()
                        d.Add(reader("nomenk_nomer"), New good_item With {.id = reader("id"), .nomenklatur_nomer = reader("nomenk_nomer"), .descr = reader("descr")})
                    End While
                    reader.Close()
                End Using
            End Using
            End Using
            Return d

    End Function


Код доходит до строчки
Using reader = Await myCmd.ExecuteReaderAsync()
и потом дебаг заканчивается и данные не получаются соответственно. Если заменить ридер на синхронный

  Using reader = myCmd.ExecuteReader()
                    While reader.Read()
                        d.Add(reader("nomenk_nomer"), New good_item With {.id = reader("id"), .nomenklatur_nomer = reader("nomenk_nomer"), .descr = reader("descr")})
                    End While
                    reader.Close()
                End Using
, то все данные получаются нормально.

Вопрос - как правильно асинхронно считывать данные? Возможно нужно использовать WaitAll, однако читал в литературах, что это плохой тон.
P.S. к сожалению в шарп не смог перевести.
Ответ: Shocker.Pro,
смысла нет, нужно действительно по-другому переписать асинхронное получение данных.
Вопрос: Как правильно использовать ConfigurationManager?

Подскажите, пожалуйста, как добавить класс, например, ApplicationSettingsBase () и использовать метод ApplicationSettingsBase::Save ().
Что куда писать? Как это все устроено в Windows Forms c++? Использую Visual Studio 2012.
P.S. я в этом еще новичок.
Ответ: Помогите, пожалуйста…
Вопрос: Как подключить строку подключения из конфигурационного файла к проекту

Добрый день! Мне нужно подключить строку подключения из файла app.config к приложению базы данных ms sql server.
Конфигурационный файл выглядит примерно так:
XML
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0"?>
 
<configuration>
 
  <connectionStrings>
 
<add name="TestConnectionString" connectionString="Data Source=.\sqlexpress;Initial Catalog=TestDatabase;Integrated Security=True;" providerName="System.Data.SqlClient" />
 
  </connectionStrings>
 
</configuration>
Как засунуть эту строку в такой класс с методом подключения базы данных?
C#
1
2
3
4
5
6
7
8
static class DbMethods
    {
        static void Connect(System.Data.Common.DbConnection Connection, String ConnectionString)
        {
            Connection.ConnectionString = ConnectionString;
            Connection.Open();
        }
    }
Я пробовала через ConfigurationManager, но студия его не видит. Пространство имен using System.Configuration подключено.
C#
1
var connectionString = ConfigurationManager.ConnectionStrings["TestConnectionString"].ConnectionString
Помогите пожалуйста, нигде не могу найти подобный пример
Ответ: Green01, зачем тебе параметр ConnectionString если ты читаешь строку соединения из файла конфигурации? И, обрати внимание, что переменная connectionString (с маленькой буквы) не используется после инициализации. Код можно переписать так:
C#
1
2
3
4
5
6
7
8
9
static class DbMethods
{
    static void Connect(System.Data.Common.DbConnection сonnection)
    {
        var connectionString = ConfigurationManager.ConnectionStrings["TestConnectionString"].ConnectionString;
        сonnection.ConnectionString = сonnectionString;
        сonnection.Open();
    }
}
Сообщение от Green01
И как проверить, что подключение получилось?
По отсутствию исключения при вызове Open().