问题列表 - 第15271页

双向外键约束

我正在考虑设计类似于以下的数据库模式:

Person (
  PersonID int primary key,
  PrimaryAddressID int not null,
  ...
)

Address (
  AddressID int primary key,
  PersonID int not null,
  ...
)
Run Code Online (Sandbox Code Playgroud)

Person.PrimaryAddressID和Address.PersonID将是相应表的外键.

显而易见的问题是,无法在任何一个表中插入任何内容.有没有办法设计一个工作模式来强制每个具有主要地址的人?

database sql-server foreign-keys

6
推荐指数
1
解决办法
5870
查看次数

打破我的头,在IIS 7托管环境中获取URL路由:ASP.NET

我正在尝试使用System.Web.Routing实现ASP.NET URL路由.这似乎在我的本地主机上正常工作但是当我上线时,我收到IIS 7的404错误(找不到文件).仅供参考,主机使用Windows Server 2008 IIS7.

我认为这在处理路由机制方面有所不同.但我无法弄清楚到底发生了什么.以下是我到目前为止所做的设置和更改,以使其工作,并给自己一些信誉,它在本地工作绝对正常.

Web.Config设置

然后我有一个system.webserver部分,它具有以下标记

<system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="Session" />
      <add name="Session" type="System.Web.SessionState.SessionStateModule"/>
      <add name="UrlRoutingModule"
               type="System.Web.Routing.UrlRoutingModule, 
                   System.Web.Routing, Version=3.5.0.0, 
                   Culture=neutral, 
                   PublicKeyToken=31BF3856AD364E35" />

    </modules>
    <handlers>
      <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    </handlers>   

</system.webServer>
Run Code Online (Sandbox Code Playgroud)

然后在Application_Start部分中,我定义了一条路由,如下所示:

void Application_Start(object sender, EventArgs e) 
{
    RegisterRoutes(RouteTable.Routes); 
}
void RegisterRoutes(RouteCollection routes)
{               
    routes.Add(
       "MyRoute",
          new Route("ProductDetail/{ProductId}/{ProductName}",
                new MyRouteHandler("~/ProductDetail.aspx")));
}
Run Code Online (Sandbox Code Playgroud)

最后MyRouteHandler看起来如下:

 public IHttpHandler GetHttpHandler(RequestContext requestContext)
 {
     var display = (Page)BuildManager.CreateInstanceFromVirtualPath(
                     _virtualPath, typeof(Page));
     HttpContext.Current.Items["ProductId"] = requestContext.RouteData.Values["Product"]; …
Run Code Online (Sandbox Code Playgroud)

c# asp.net url-routing

10
推荐指数
1
解决办法
8595
查看次数

从Java运行MATLAB函数

我在MATLAB中有一个.m文件,我想从Java调用一个字符串或Java中的任何一个解决方案.这听起来很简单,但由于某种原因,我无法使其工作.

我试过这个:

matlab -nosplash -wait -nodesktop -r  myFunction
Run Code Online (Sandbox Code Playgroud)

但是我不确定我是如何解析答案的,因为MATLAB打开了它自己的命令行(在Windows中).

我用它,但它没有返回任何东西.

Process p = Runtime.getRuntime().exec(commandToRun);
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
Run Code Online (Sandbox Code Playgroud)

我似乎每次调用MATLAB时都会打开一个单独的窗口,这是一个问题,因为我想多次运行它.

java matlab

11
推荐指数
2
解决办法
2万
查看次数

如何在jQuery中解析JSON数组?

编辑我检查了jQuery文档,并使用$ .ajax指定的json数据类型返回一个评估的javascript对象,所以eval()不是这里的答案.无论如何,我知道,因为我能够解析单个JSON对象,而不是数组.问题是$ .each-ing my through through through :)

我已经遵循了将jQuery中的JSON数组解析为字母的语法,但由于某种原因它不起作用.我使用$ .ajax获取数组,指定了正确的数据类型,并且在Firebug中可以看到我的PHP脚本的响应是[].然而,当我尝试使用$ .each迭代数组时,当我尝试console.log数组的各个部分时,我得到的都是未定义的值.这是我的PHP脚本制作和编码数组的地方:

if(mysqli_num_rows($new_res) > 0) {
$messages = array();

while($message_data = mysqli_fetch_assoc($query_res)) {
  $message = array(
    'poster' => $message_data['poster'],
    'message' => $message_data['message'],
    'time' => $message_data['time']
  );

  $messages[] = $message;
}

echo json_encode($messages);
} else if(mysqli_num_rows($new_res) == 0) {
$message = array(
  'poster' => '',
  'message' => 'No messages!',
  'time' => 1
);

echo json_encode($message);
}
Run Code Online (Sandbox Code Playgroud)

这是我试图解析它:

   var logged_in = '<?php echo $logged_in; ?>';
   var poster = '<?php echo $_SESSION["poster"];?>';
     $.ajax({ …
Run Code Online (Sandbox Code Playgroud)

arrays each jquery json

5
推荐指数
3
解决办法
11万
查看次数

Php语法帮助

我正在研究搜索功能,它在四天前工作正常,现在它正在返回此错误

您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在第1行的"AND state ='AZ''附近使用正确的语法

这条线的正确语法是什么?

if($search_state !== "") {

$query .="AND state =  '" . $search_state .  " ' " ;
Run Code Online (Sandbox Code Playgroud)

整个部分是:

$query = "SELECT id, name, contact, contact2, address1, address2, city, state, postalcode, country, location, workphone, fax, email, webaddress, region, rail, food, forest, metal, bulk, chem, general, paper FROM companies_new WHERE dummy = '' ORDER BY state ASC ";

if($search_co !== "") {

$query .= "AND name LIKE '%" . $search_co ."%' ";

}


if($search_first !== "") { …
Run Code Online (Sandbox Code Playgroud)

php mysql sql

-1
推荐指数
1
解决办法
113
查看次数

如何使用foreach循环删除面板中的所有控件?

这是我的代码:

private void ClearSearchResults()
    {
        foreach (Control X in panel1.Controls)
        {
            panel1.Controls.Remove(X);
        }
    }
Run Code Online (Sandbox Code Playgroud)

问题是,当我运行此方法时,只删除一个项目,然后如果我再次单击一个按钮以便该方法可以再次运行,则删除另一个项目.

如果我的面板中有10个控件,我必须多次单击程序上的"删除"按钮才能删除所有控件.

在这种情况下我该怎么办?

c# foreach winforms

4
推荐指数
3
解决办法
3899
查看次数

如何在mac os x 10.6上安装gnu ld?

我在我的macbook pro(使用mac os x 10.6)上编译非常出色的Contiki OS时遇到了很多麻烦.Contiki实际上使用了许多GNU特有的功能和GCC,AR,LD等选项.所以我通过macports安装了这些实用程序,但看起来"port install binutils"不安装GNU ld,是吗?

所以,问题是,如何在我的Mac上获得GNU ld?是否有一种简单的替代方式(即wget, configure, make, make install方式)?

macos ld binutils

10
推荐指数
1
解决办法
1万
查看次数

使用 CollectionViewSource 和 DataBinding 进行 WPF 分组

我将 a 绑定CollectionViewSource到 aListView以对项目进行分组。一切都很好,除非我更新其ObservableCollection基础CollectionViewSource。如果我更新集合中对象的值,则 UI 永远不会更新。这是一个例子:

<ListView x:Name="MyListView" Margin="0,0,0,65">
    <ListView.GroupStyle>
        <GroupStyle>
            <GroupStyle.ContainerStyle>
                <Style TargetType="{x:Type GroupItem}">
                    <Setter Property="Margin" Value="0,0,0,5"/>
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="{x:Type GroupItem}">
                                <Expander IsExpanded="true" BorderBrush="#FFA4B97F" BorderThickness="0,0,0,1">
                                    <Expander.Header>
                                        <DockPanel>
                                            <TextBlock FontWeight="Bold" Text="{Binding Name}" Margin="5,0,0,0" Width="80"/>
                                            <TextBlock FontWeight="Bold" Width="60" TextAlignment="Center" Margin="16,0,0,0" Text="{Binding Items, Converter={StaticResource Converter2}}" />
                                        </DockPanel>
                                    </Expander.Header>
                                    <ItemsPresenter />
                                </Expander>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </GroupStyle.ContainerStyle>
        </GroupStyle>
    </ListView.GroupStyle>
    <ListView.View>
        <GridView>
            <GridViewColumn Width="300" Header="Amount" >
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Amount}" Margin="80,0,0,0"/>
                    </DataTemplate>
                 </GridViewColumn.CellTemplate> …
Run Code Online (Sandbox Code Playgroud)

data-binding wpf collectionviewsource

2
推荐指数
1
解决办法
1万
查看次数

等待进程组时,waitpid()没有子进程错误

编写我自己的玩具外壳,并试图实现作业控制.

我正在使用setpgid在子级和父级中设置子级的进程组.我的等待电话是:

pid = waitpid(-pid, &status, 0)
Run Code Online (Sandbox Code Playgroud)

但是,waitpid返回-1并且perror说"没有子进程".但是,它确实似乎每次都在等待.另外,ps输出在从shell运行时看起来正确.因为ps父级的进程就像我期望的那样是kbsh.

% ps -o pid,ppid,pgrp,session,tpgid,comm
Forking
In Parent: Setting process group to 20809 of process 20809 with setpgid
In Child Processes, pid of child process is 20809
in Child: Setting process group to 20809 of process 20809 with setpgid
Requesting that Process Group 20809 becomes the foreground process with tcsetpgrp
Waiting for job with process group 20809
  PID  PPID  PGRP  SESS TPGID COMMAND
12002 32573 12002 12002 20809 zsh
20808 12002 20808 12002 …
Run Code Online (Sandbox Code Playgroud)

c unix

7
推荐指数
2
解决办法
3万
查看次数

使用EnableSSL的FtpWebRequest

我实现了我的自定义FTP类来处理我正在支付的托管服务器.我使用FTP来备份,恢复和更新我的应用程序.我现在正处于想要让ssl投入生产的那一刻.我问我的托管公司他们是否支持ssl协议,他们说他们这样做.

所以我在Microsoft MSDN教程之后将我的方法修改为:

reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(m_ftpAddress.Trim()));
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential(m_ftpUsername, m_ftpPassword);
reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;

ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(ValidateServerCertificate);
                X509Certificate cert = new X509Certificate(path to a certificate created with makecert.exe);

reqFTP.ClientCertificates.Add(cert);
reqFTP.AuthenticationLevel = AuthenticationLevel.MutualAuthRequested;
reqFTP.ImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Identification;

reqFTP.EnableSsl = true;
Run Code Online (Sandbox Code Playgroud)

现在,MSDN说如果服务器支持ssl协议,当被问到AUTH TLS时,它不会抛出异常.这可以在跟踪日志中看到.所以我认为这不是服务器问题.

在身份验证阶段之后,服务器返回a

System.Net信息:0:[0216] FtpControlStream#41622463 - 接收响应[227进入被动模式(IP和端口号).]

触发错误的消息:

System.Net错误:0:[0216] FtpWebRequest中的异常#12547953 :: GetResponse - 远程服务器返回错误:227进入被动模式(IP和端口号).

我试过设置

reqFTP.UsePassive = true;
Run Code Online (Sandbox Code Playgroud)

属性为false然后我收到此错误:

System.Net信息:0:[2692] FtpControlStream#4878312 - 收到回复[500 Illegal PORT command]

当然,如果没有将EnableSLL属性设置为true,一切都可以正常工作.

有没有人对此有任何想法?

编辑:我将代码修改为休耕:

reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(m_ftpAddress.Trim()));
reqFTP.UseBinary = true; …
Run Code Online (Sandbox Code Playgroud)

c# ftp ssl ftpwebrequest

5
推荐指数
1
解决办法
9839
查看次数