Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Автор: hobest
Дата сообщения: 05.08.2010 16:23
mrherbrooks

Не вижу ничего криминального, если к кроссплатформенности самих средств добавить набор классов, реализующий особенности конкретной ОС. Чтобы универсальная программа работала оптимально под разные ОС, в какой-то момент придется использовать эти особенности. Весь вопрос в том, кто возьмет на себя этот труд: либо поставщики самого .NET, либо сами программисты будут отдельные модули под разные ОС компилировать.
Автор: MagistrAnatol
Дата сообщения: 13.08.2010 08:29
народ, подсобите с двумя вопросами с базой SQL CE , пишу на си шарпе:
1 - не работает фильтр с русицкими буковками
((TextCell)alCustomers.Templates[1].CellTemplates["CellMagazinName"]).SelectedText = this.textBox1.Text;

if (this.textBox7.Text != "")
this.pokypkuBindingSource.Filter = "MagazinName LIKE '*" + this.textBox7.Text + "*'";
else
this.pokypkuBindingSource.RemoveFilter();


2 - база реально долго открывается, - всего три таблицы и они пустые
this.cprMagazinTableAdapter.Fill(this.magazinDS.cprMagazin);
this.pokypkuTableAdapter.FillBy(this.pokypkuDS.Pokypku);
this.cprTovarTableAdapter.Fill(this.tovarDS.cprTovar);
Автор: MagistrAnatol
Дата сообщения: 13.08.2010 12:23

Цитата:
1 - не работает фильтр с русицкими буковками

с етим разобрался - в свойстках базы поменял локализацию с 1033 на 1049 и все клас,
а вот со вторым пунктом проблема - поставил индикатор загрузки проги
40 % времени запуск самой проги, а остальное открытие 3 пустих таблиц - в чем прикол?,
че так долго открываются таблицы?
Автор: clikerA
Дата сообщения: 14.08.2010 22:53
Здраствуйте. Недавно начал изучать C#, и при комманде using System.Drawing дебаггер говорит что в пространстве имён System нету Drawing. Кто подскажет что делать, что качать? стоит студия 2010.
Автор: Omicron_Persey_8
Дата сообщения: 14.08.2010 23:22
clikerA
В свой проект добавь ссылку на System.Drawing.dll
Автор: clikerA
Дата сообщения: 14.08.2010 23:46
ФУУ блин, спасибо
Автор: v1rtyaluk
Дата сообщения: 16.08.2010 11:48
есть маленькие неясности с аргументами командной строки.
Вот код, принимает 3 аргумента командной строки:

Код:
foreach (string s in args)
{
switch (s)
{
case "-arg1":
Console.WriteLine("This program has argument -arg1");
break;
case "-arg2":
Console.WriteLine("This program has argument -arg2");
break;
case "-arg3":
Console.WriteLine("This program has argument -arg3");
break;
default:
break;
}
}
Автор: Mextrom
Дата сообщения: 16.08.2010 14:01
v1rtyaluk
Аргументы коммандной строки (args) - это просто массив строк, разделенных пробельными символами. Т.е. если имеем строку
Код: program.exe -arg1 abc -arg2 xyz
Автор: v1rtyaluk
Дата сообщения: 16.08.2010 15:21
Mextrom
а можно на примере кода?
Автор: Omicron_Persey_8
Дата сообщения: 16.08.2010 15:58
v1rtyaluk
Запросто.

Код: static void Main(string[] args)
{
foreach(string s in args)
Console.WriteLine(s);
}
Автор: v1rtyaluk
Дата сообщения: 16.08.2010 16:08
Omicron_Persey_8, привет!

Я знаю как использовать флаги командной строки, выше кусок моего кода.

Я не могу организовать передачу параметров через флаги командной строки.
Например, есть флаг -color.Как заставить программу читать параметер этого флага, допустим -color FFFFFFFF ??

чтоб "из вне" прочитать цвет и производить с ними соответствующие операции.

Добавлено:
Update
если можно на примере кода.
Автор: Mextrom
Дата сообщения: 16.08.2010 16:50
v1rtyaluk

Цитата:
допустим -color FFFFFFFF

Можно так
Код: static void Main(strin[] args)
{
for (int i =0; i < args.Length; i++)
{
switch(args[i])
{
case "-color":
if (i != args.Length - 1)
{
string colorValue = args[++i];
}
break;
case ...
}
}
}
Автор: Omicron_Persey_8
Дата сообщения: 16.08.2010 16:52
v1rtyaluk
Все элементарно. Вызываешь прогу, например, start.exe -color FFFFFFFF и у тебя в args'ах будет сидеть:
args[0] = "-color"
args[1] = "FFFFFFFF"
И проверяй, если первый символ строки '-', то значит это ключ, следующая строка - значение ключа.
Автор: nikanomo
Дата сообщения: 17.08.2010 07:31
Здравствуйте!
Изучаю ASP.NET MVC 2, решил написать интернет-магазин. Возникла проблема: есть контроллер через который администратор может управлять категориями и продуктами в них, но не работает функция удаления; через отладчик я понял, что в POST обработчик действия Delete не передается параметр.

Action'ы:

Код: using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcStoreApp.Models;

namespace MvcStoreApp.Controllers
{
[Authorize(Roles="Administrator")]
public class ManageController : Controller
{
private StoreAppDBEntities _db = new StoreAppDBEntities();

...

//
// GET: /Manage/Delete/5

public ActionResult Delete(int id)
{
return View((from m in _db.Categories
where m.CategoryID == id
select m).First());
}

//
// POST: /Manage/Delete/5

[HttpPost]
public ActionResult Delete(Category category)
{
try
{
_db.DeleteObject((from m in _db.Categories
where m.CategoryID == category.CategoryID
select m).First());
_db.SaveChanges();

return RedirectToAction("Index");
}
catch
{
return View();
}
}
}
}
Автор: BlackVetal
Дата сообщения: 17.08.2010 09:01
nikanomo
А вопрос в чем?
Автор: nikanomo
Дата сообщения: 17.08.2010 09:46
Как эту проблему решить.
Автор: MagistrAnatol
Дата сообщения: 17.08.2010 15:09
господа, как предоставить PocketOutlook.Contacts в виде базы - чтобы можно было группировать и сортировать по выбраному полю, группировка желетельно двухуровневая??
Автор: v1rtyaluk
Дата сообщения: 20.08.2010 13:54
как, непосредственно, в ричтекстбоксе производить замену определенного текста, допустим "", на ранее заданное изображение по нажатию кнопки при этом не используя сторонние компоненты, только чистый си шарп
???
Автор: Tacio
Дата сообщения: 20.08.2010 14:00
Возник вопрос по WPF .NET 4 и c#. Есть набор обычных кнопок (Button), эти кнопки выполняют команды (Command) и для них соотвесттенно есть свойства CanExecute.
Задача: При нажатии на любою кнопку все кнопки (в том числе нажатая) становятся неактвные (CanExecute=false) пока не выполнится определённое действие. С этим всё ясно как сделать. Но, нажатую кнопку нужно подсветить (Background например поменять), чтоб было видно какую именно кнопку нажали - а вот как это сделать непонятно. Точнее понятно что можно через binding, но может как-то можно проще через триггеры?
Автор: Omicron_Persey_8
Дата сообщения: 20.08.2010 17:38
v1rtyaluk
Тогда только свой компонент написать, RichTextBox для этих целей не предназначен.
Автор: auditore
Дата сообщения: 20.08.2010 22:38
Ребята, помогите решить пару проблем.
Я в C# новичок - так сказать, разбираюсь очень плохо.

Нужно разрешить одну задачку.

Например, направить браузер на заданый адрес.
После чего проверить заголовок страницы, если например, заголовок удовлетворяет ксловие:
if(page.title=="удовлетворяет")
{
тогда перенаправить браузер на другой адрес
если-же и в этом случаи заголовок сраницы удовлетворяет условие(как выше)
тогда, нужно прочесть полученый во-втором запросе адрес которий должен содержать некоторые праметры, типа:
parameter="some_value_of_this_parameter"&parameter=".......
которие в свою очередь нужно извлечь в переменные оператором swich.

Впринципе это могу сделать даже я.форма+вэббраузер+2 баттона +зэ энд

Но, мне нужно это оформить не с использованием компонента веббраузер, а простыми ПОСТ или ГЕТ запросом.

Как сделать эти запросы??Пожалуйста, помогите кодом.
Автор: Docent1
Дата сообщения: 21.08.2010 00:11
Не совсем обычная просьба, да спросить негде!
Поставил Windows 7 x64 Home Basic и не могу установить Windows 7 SDK 7.1
(ни вебустановщиком, ни с диска, ни x64 или x86)
Пишет, что SDKSetup Error: В экземпляре объекта не задана ссылка на объект.
22:34:59 20 августа 2010 г.: -------------------------------------------------------------------------------------------------
22:34:59 20 августа 2010 г.: [SDKSetup:Info] Begin
22:34:59 20 августа 2010 г.: [SDKSetup:Info] SDKSetup Version 7.1.7600.30111
22:35:00 20 августа 2010 г.: [SDKSetup:Error]: В экземпляре объекта не задана сс
ылка на объект. Stack: в System.Xml.BufferBuilder.Append(Char[] value, Int32
start, Int32 count) в System.Xml.XmlTextReaderImpl.ParseXmlDeclaration(Bo
olean isTextDecl) в System.Xml.XmlTextReaderImpl.Read() в Sys
tem.Xml.XmlReader.MoveToContent() в System.Data.DataSet.ReadXmlSchema(X
mlReader reader, Boolean denyResolving) в SDKSetup.SDKSetupDll.LoadConfigurat
ion() в SDKSetup.SDKSetupDll.Init(List`1 sourceFileLocations, Boolean quiet
, Boolean showHiddenFeatures, InstallModeType installMode, List`1 featureParams,
List`1 productParams) в SDKSetup.SDKSetupDll.RunSetup(List`1 sourceFileLoca
tions, String logFileName, String loggingSwitches, Boolean quiet, Boolean showHi
ddenFeatures, InstallModeType installMode, List`1 featureParams, List`1 productP
arams, List`1 DisabledFeatures, Boolean sqmOptInFromCmd, String installLocation,
String installLocationSamples, Boolean ignoreDependentProducts)
22:35:14 20 августа 2010 г.: [SDKSetup:Info] End
22:35:14 20 августа 2010 г.: -------------------------------------------------------------------------------------------------

Может, кто сечет, в чем тут дело?
===================================================================================
Короче говоря, SDK без VS не установить? Я вроде когда-то устанавливал 2005...
Автор: v1rtyaluk
Дата сообщения: 21.08.2010 10:44
Docent1
сейчас скачаю, посмотрю...
но, мне кажется, что нету какого-то файла судя по:

Цитата:
В экземпляре объекта не задана ссылка на объект.


или установщик допустим, не находит директорию систем32(хотя на 64битках она тоже есть)

короче, установлю - отпишу...

Добавлено:
UPD
скачал образ - 567 Мб с сервера Майкрософт
Все установилось, без проблем.
Автор: Docent1
Дата сообщения: 21.08.2010 18:57
v1rtyaluk
Спасибо, похоже мне Виндовс надо переставлять....
Автор: Mextrom
Дата сообщения: 22.08.2010 10:45
auditore
Вот пример POST запроса, GET запрос выполняется аналогично.

Код: public static string MakePOSTRequest(string url, string paramsString,
CookieContainer cookieContainer, out string location)
{
if (string.IsNullOrEmpty(url))
{
location = string.Empty;
return string.Empty;
}
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "ru,en-us;q=0.7,en;q=0.3");
request.CookieContainer = cookieContainer;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = paramsString.Length;
request.AllowAutoRedirect = false;
StreamWriter writer = null;
StreamReader reader = null;
try
{
writer = new StreamWriter(request.GetRequestStream(), System.Text.Encoding.ASCII);
writer.Write(paramsString);
writer.Flush();
writer.Close();
HttpWebResponse webResponse = (HttpWebResponse)request.GetResponse();
location = webResponse.Headers[HttpResponseHeader.Location];
reader = new StreamReader(webResponse.GetResponseStream());
string page = reader.ReadToEnd();
reader.Close();
webResponse.Close();
return page;
}
catch (IOException ex)
{
Console.Error.WriteLine(ex.Message);
location = string.Empty;
}
catch (WebException ex)
{
Console.Error.WriteLine(ex.Message);
location = string.Empty;
}
finally
{
if (writer != null)
{
writer.Close();
}
if (reader != null)
{
reader.Close();
}
}
return string.Empty;
}
Автор: v1rtyaluk
Дата сообщения: 22.08.2010 11:46
Ребята, что-то я заплутался!

Как сделать, чтоб переменные были доступны на уровне класса?


Например, есть код:

Код:
namespace _testApp
{
public class test
{
string someString ="someContext";
WebBrowser webBrowser=new WebBrowser();
private void MyFunction
{
webBrowser.Navigate=new Uri(String.Format("some.string"));
webBrowser.DocumentCompleted+=new WebBrowserEventHandlerDocumentCompleted(this.webBrowser_DocumentCompleted);
}
private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
Здесь, после завершения загрузки страницы, я получаю в переменную нужные мне параметры из якорной ссылки этого-же веббраузера.Как сделать чтоб эти переменные были доступны на уровне класса, как та переменная - someString??
}
}
}
Автор: Mextrom
Дата сообщения: 22.08.2010 14:53
v1rtyaluk

Цитата:
Как сделать чтоб эти переменные были доступны на уровне класса, как та переменная - someString??

А кто мешает создать в классе переменную? Не в методе, а в классе.

Цитата:
то, выходит, что загрузка страницы не произойдет??
куда-же ей грузится?и просто можно манипулировать с свойствами Url и DocumentTitle.
так-же?

Страница загрузится в память, просто рендериться не будет. В остальном, по идее, можно так же работать с полученной страницей. И нужен ли вообще webbrowser, если нет цели отображать контент страницы?
Автор: v1rtyaluk
Дата сообщения: 22.08.2010 15:08
Mextrom


Цитата:
А кто мешает создать в классе переменную? Не в методе, а в классе.


В смысле??
Объявить в начале класса переменную, а потом в методе присвоить ей значение и можно его использовать в другом метода.Да??


Цитата:
Страница загрузится в память, просто рендериться не будет.


А можно отключить загрузку страницы и работать только с адресом и заголовком?Или это надо зайти в настройки обозревателя(в системе) и отключать графику, звуки, мультимедиа....в ручную?


Цитата:
И нужен ли вообще webbrowser, если нет цели отображать контент страницы?

Дело в том, что я использую браузер 2 раза:
- первый раз авторизируюсь по заданному адресу,
- а второй раз, делаю запрос на тот-же адрес с некоторыми параметрами и в ответ получаю в якорной ссылке параметры сессии которые мне дальше нужно использовать.
А если использовать HttpWebRequest то,
при запросе на авторизацию все ОК(правда в ответ получаю код хтмл страницы),
а вот при втором запросе на получение параметров сессии в ответ получаю код страницы авторизации т.е. если использовать браузер в этих целях он "помнит" авторизацию и сохраняет сессию, а ХттпВэбРеквест - нет.И вообще мне не нужна страница, а только ее заголовок и якорная ссылка (URL на который я попадаю).
Автор: Mextrom
Дата сообщения: 22.08.2010 17:14
v1rtyaluk

Цитата:
Объявить в начале класса переменную, а потом в методе присвоить ей значение и можно его использовать в другом метода.Да??

Да.

Цитата:
А если использовать HttpWebRequest то,
при запросе на авторизацию все ОК(правда в ответ получаю код хтмл страницы),
а вот при втором запросе на получение параметров сессии в ответ получаю код страницы авторизации т.е. если использовать браузер в этих целях он "помнит" авторизацию и сохраняет сессию, а ХттпВэбРеквест - нет.И вообще мне не нужна страница, а только ее заголовок и якорная ссылка (URL на который я попадаю).

Браузер "помнит" данные авторизации, потому что он хранит куки, полученные после авторизации. Это обычно id сессии, но могут быть еще какие-то дополнительные параметры. Для этого можно создать в классе переменную типа CookieContainer и затем передавать ее в свои запросы. В примере с POST запросом я как раз передавал содержимое такого контейнера
Код: request.CookieContainer = cookieContainer;
Автор: v1rtyaluk
Дата сообщения: 22.08.2010 17:42
Mextrom
Страничка возвращаемая во втором случаи имеет всего-навсего одну строчку текста, а в самом коде нет якорной ссылки с параметрами сессии.
У вас есть аська?Поможете мне разобраться с этой проблемой ибо через форум это долго, а завершить проект надо до вторника(уезжаю на учебу), а знаний как видите у меня не достаточно, чтоб решить задачу такого рода.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102

Предыдущая тема: Как удалить/добавить/отключить/включить устройство?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.